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

Ruby 输入字符串与数字范围不匹配,ruby,gets,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 您从get获取的输入始终是一个字符串,因此它永远不会匹配

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

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

cost = gets.to_i
你可以像这样直接把它放在case语句中

case gets.to_i

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

cost = gets.chomp.to_i

未按预期工作
=>您希望得到什么?谢谢!我想是的。有没有办法把它转换成整数?我尝试了整数(成本)方法,但不起作用。我可以说-when Integer[cost]1..3
Integer(cost)
只要不包含额外字符,就可以正常工作<代码>字符串#to_i更灵活,适用于这种情况。非常感谢您,它很有效!我已经和它斗争了很长一段时间-我是新的编码。