0

下面的 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
4

2 回答 2

1

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

cost = gets.chomp.to_i
于 2013-07-01T15:11:47.987 回答
0

你得到的输入gets总是一个字符串,所以它永远不会匹配一个数字范围。要将其转换为整数,请执行以下操作:

cost = gets.to_i

你可以像这样直接把它放在case语句中

case gets.to_i
于 2013-07-01T15:11:20.030 回答