在Ruby中如何生成介于最小值到指定最大变量之间的随机数
你写的代码问题出在max_num.to_i这行没有把转换后的整数赋值回变量,gets方法获取到的用户输入默认是字符串类型,不做赋值的话max_num还是字符串,直接传入范围作为边界肯定会报错。
修正后的写法如下:
print "Enter a number: " max_num = gets.to_i # 读取用户输入后直接转成整数赋值给max_num random_num = rand(0..max_num)
补充说明:
- 要是你需要生成的随机数不包含
max_num这个上限值,把范围换成三个点的写法0...max_num即可,效果和rand(0..max_num - 1)完全一致。 - 如果你的随机数固定从0开始,还可以进一步简化写法,直接把上限值+1传入
rand就行:random_num = rand(max_num + 1),得到的结果和rand(0..max_num)没有区别。
内容的提问来源于stack exchange,提问作者Sohaila Ali
相关产品推荐
相关产品推荐

