首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Ruby随机数发生器

Ruby随机数发生器
EN

Stack Overflow用户
提问于 2014-06-28 20:22:30
回答 2查看 695关注 0票数 0

我正试图在Ruby中做一个随机数猜测游戏。我是新来的,也许答案很明显,但为什么这个方法行不通呢?

代码语言:javascript
代码运行次数:0
运行
复制
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循环也会继续循环。正如你所看到的,我甚至打印了生成的数字,所以我知道该猜哪一个。

知道这里出了什么问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-28 20:24:24

number是一个数字,choice是一个字符串。您需要解析字符串才能使其工作:

代码语言:javascript
代码运行次数:0
运行
复制
choice = gets.chomp.to_i
票数 3
EN

Stack Overflow用户

发布于 2014-06-28 20:26:58

您可能应该使用其他方法来比较从rand()函数返回的数字和从gets返回的字符串。

也许宇宙飞船运算符(<=>)会工作,再加上使用to_s将数字转换成字符串,在这种情况下,while循环头看起来就像

代码语言:javascript
代码运行次数:0
运行
复制
while !(number.to_s <=> choice) do

或者类似的东西。

不过,你不必使用太空船操作员。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24470627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档