我正在尝试创建一个程序,其中老虎机随机int
,使用一些if
语句处理一系列数字,并根据什么范围返回一定数量的现金随机整数适合的数字。
问题来自if
语句if(s >= 0 && s < 6 )
,我将随机对象与int
进行比较。
/* This method determines the amount of pay off when there is a winner
* @ return the amount of payoff
*/
private int getPayOff()
{
Random s = new Random();
s.nextInt(11);
Random rr = new Random();
rr.nextInt(10 + 1);
Random rrr = new Random();
rrr.nextInt(90 + 11);
if(s >= 0 && s < 6 )
return rr;
else if(s >= 6 && s < 9)
return rrr;
return 10000;
}
答案 0 :(得分:0)
如果我理解你的问题,你想要在 1 1到10范围内产生两个值,在11到100范围内产生一个值。你只需要一个Random
(一个发生器)对于随机值),然后您可以使用它来生成三个随机值(实际上,两个随机值取决于代码路径)。此外,您可以简化if
链以删除不可能的条件。像,
private final Random rand = new Random(); // <-- one.
private int getPayOff() {
int s = 1 + rand.nextInt(10); // <-- [1,10]
if (s < 6) {
return 1 + rand.nextInt(10); // <-- [1,10]
} else if (s < 9) {
return 11 + rand.nextInt(90); // <-- [11,100]
}
return 10000;
}
1 我们添加一个因为Random.nextInt(int)
返回伪随机,均匀分布的int
值介于0(含)和指定值(不包括)之间子>