我正在从C转换为F,反之亦然。我的代码是:
puts "Please input temperature"
data = gets.chomp.to_i
sign = "C" and "F"
Myclass = Class.new do
puts sign
end
if sign == "C"
puts data + 1.8 + 32
elsif sign == "F"
puts (data - 32) * 0.55
end
如果我不使用to_i
附加数据,则会收到错误消息:
8:in +': no implicit conversion of fixnum into string
答案 0 :(得分:1)
data = gets.chomp.downcase
deg, meas = data.split(/(?=[cf])/)
case meas
when 'c' then puts 1.8 * deg.to_f + 32
when 'f' then puts (deg.to_f - 32) / 1.8
else puts 'Wrong input. Please enter smth like “50C”'
end
答案 1 :(得分:0)
我认为下面是您要问的详细半代码形式。您的问题是您输入的是C或F,以及所需的C或F输出。因此,您需要参数化此选项并将其滚动到一个函数中。 num
是您调用data
的变量。你当然可以更简洁地做到这一点,或者确实没有elsif
,但我没有假设你如何得到这个值 - 如果它作为用户输入而来,则可能是一个简单的{{1}检查会导致错误命中默认条件。
希望这是有道理的。
else