当我要求用户输入这样的内容时:
puts "Enter num: "
num = gets()
if num == 44
puts "Yeah"
end
unless num == 44
puts "No"
end
当我在提示时输入"No"
时,输出为44
。我无法弄清楚发生了什么,所以请帮忙。
答案 0 :(得分:2)
您可以这样做:
gets.to_i
基本上chomp
换行符并转换为整数。
示例:
2.1.2-perf :020 > num = gets.to_i
44
=> 44
2.1.2-perf :021 > if num == 44
2.1.2-perf :022?> puts "Yeah"
2.1.2-perf :023?> end
Yeah
答案 1 :(得分:2)
输出是"否"因为当你使用gets实际上输入被视为字符串,所以发生不匹配。因此,为了使您的逻辑工作,您应该将其转换为整数
所以这是解决方案
puts "Enter num: "
num = gets().to_i
if num == 44
puts "Yeah"
end
unless num == 44
puts "No"
end
答案 2 :(得分:1)
gets()
本身包含newline
字符。使用gets.chomp
删除该额外字符。然后,调用.to_i
转换为整数。所以:gets.chomp.to_i
。