不知道为什么会这样

时间:2014-03-05 06:38:33

标签: ruby string

我写了这段代码:

print "100 + 1 ="
user_answer = gets.chomp
if user_answer == 101
  puts "That's correct"
else
  puts "Sorry, you're wrong"
end

当我运行此代码时,无论我的答案是什么,都会执行else分支。如果有人能指出我正确的方向,那将非常感激。

2 个答案:

答案 0 :(得分:4)

user_answer是一个字符串:

user_answer = "101\n".chomp
# => "101"

代码正在比较字符串和数字,它始终返回false

user_answer == 101
# => false

您需要将字符串转换为数字,或将其与字符串进行比较:

user_answer.to_i == 101
# => true
user_answer == "101"
# => true

答案 1 :(得分:1)

在将user_answer与101进行比较之前,您需要将if user_answer.to_i == 101 ... 作为数字投射。

{{1}}