Ruby直到总是验证为false?

时间:2016-07-19 21:03:24

标签: ruby loops

所以我写了这段代码来玩数字和直到循环:

number = rand(10)
puts number

puts "Guess the number"
guess = gets.chomp


until guess == number
  puts "Guess again!"
  guess = gets.chomp
end

puts "You've guessed it right! The number is #{guess}

但由于某种原因,它总是停留在直接循环中,我不知道为什么。我把随机数知道我猜对了,试试代码。我对Ruby来说是全新的,所以我想这是一个我很想念的事情,但我只是没有看到它。

从我的角度来看,每当我再次提示猜测时,那个由until guess == number的until循环验证的猜测。

谁能帮我解决这个问题?

2 个答案:

答案 0 :(得分:2)

原因很简单,那就是你没有将用户输入转换为整数。

即。如果我写

number = gets.chomp

我输入1作为数字,然后number变量将等于字符串 "1",而不是整数 1

要解决此问题,请使用guess = gets.chomp.to_i

答案 1 :(得分:1)

使用guess = gets.chomp(将用户输入转换为整数)而不是guess = gets.to_i(将返回用户输入的字符串) to_i方法会将元素转换为整数并删除/n字符,因为它不是整数的一部分。不需要添加.chomp方法。