我想做类似的事。
puts "Please write your age: "
age = gets.chomp
if #{age}<18
puts "you are illegal"
else #{age}>18
puts "You are legal"
end
i得到输出是:
"请写上你的年龄" 15.你是非法的你是合法的"
还有这个
"请写上你的年龄20岁你是非法的你是合法的"
为什么?那解决办法是什么?
我所期望的是如果我写19或以上,它会说"你是合法的"如果我写17或以下的任何数字,它会告诉我"你是非法的"
4条答案
按热度按时间ogq8wdun1#
欢迎来到StackOverflow。
#{}
用于字符串插值,不需要它,else语句不像这样工作(elsif
可以),还需要将字符串转换为整数,可以这样写:See
rryofs0p2#
问题是你的代码等价于:
因为
#
开始一个注解,这使得解释器忽略该行注解之后的所有内容。您可以使用其他答案中的任何建议来修复代码。
aemubtdh3#
...进行整数对整数比较。
7tofc5zh4#
首先应该将输入类型转换为
Integer
,然后进行逻辑运算,注意检查字符串输入是否为数值也很重要(因为to_i
在'a'.to_i
这样的情况下返回0
),可以这样做: