我正试图在Ruby中做一个随机数猜测游戏。我是新来的,也许答案很明显,但为什么这个方法行不通呢?
number = rand(5)
choice = 9999
while number != choice do
puts "Guess the number #{number}"
choice = gets.chomp
end
puts "You guessed Correctly! #{number} was the correct number."
正如您所看到的,我将其限制为0到4之间的数字。然后Then循环运行,而用户所作的猜测与生成的随机数不同。但是,即使用户输入正确的数字,while循环也会继续循环。正如你所看到的,我甚至打印了生成的数字,所以我知道该猜哪一个。
知道这里出了什么问题吗?
发布于 2014-06-28 12:24:24
number
是一个数字,choice
是一个字符串。您需要解析字符串才能使其工作:
choice = gets.chomp.to_i
发布于 2014-06-28 12:26:58
您可能应该使用其他方法来比较从rand()
函数返回的数字和从gets
返回的字符串。
也许宇宙飞船运算符(<=>
)会工作,再加上使用to_s
将数字转换成字符串,在这种情况下,while循环头看起来就像
while !(number.to_s <=> choice) do
或者类似的东西。
不过,你不必使用太空船操作员。
https://stackoverflow.com/questions/24470627
复制