所以我写了这段代码来玩数字和直到循环:
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循环验证的猜测。
谁能帮我解决这个问题?
答案 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
方法。