输入字符串与数字范围不匹配

时间:2013-07-01 15:10:00

标签: ruby gets

以下ruby代码未按预期工作。它似乎无法识别1..3范围,只读取else条件。如果我给出一个数字而不是一个范围,它可以工作。不知道我哪里出错了。

print "Enter your cost: "
cost = gets.chomp
case cost
when 1..3 
 puts "inexpensive"
when 3..5 
 puts "affordable"
else puts "no comments"
end

2 个答案:

答案 0 :(得分:1)

您正在尝试将字符串与整数范围匹配。那不行。做一个整数。

cost = gets.chomp.to_i

答案 1 :(得分:0)

您从gets获得的输入始终是一个字符串,因此它永远不会匹配数字范围。要将其转换为整数,请执行以下操作:

cost = gets.to_i

你可以直接把它放在case case语句中,如此

case gets.to_i