坏操作数类型 - 第一种类型 - java.util.Random,第二种类型 - int

时间:2016-01-28 03:21:04

标签: java

我正在尝试创建一个程序,其中老虎机随机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;

}

1 个答案:

答案 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(含)和指定值(不包括)之间