如何获得第二个elsif声明

时间:2017-04-10 11:07:32

标签: ruby

我正在从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

2 个答案:

答案 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