以下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
答案 0 :(得分:1)
您正在尝试将字符串与整数范围匹配。那不行。做一个整数。
cost = gets.chomp.to_i
答案 1 :(得分:0)
您从gets
获得的输入始终是一个字符串,因此它永远不会匹配数字范围。要将其转换为整数,请执行以下操作:
cost = gets.to_i
你可以直接把它放在case case语句中,如此
case gets.to_i