获取random.NextBoolean()的结果并在if语句中使用它

时间:2018-05-02 18:26:24

标签: java concurrency

public void waitingbay (Bus bus) throws InterruptedException
{
    synchronized (listBus)
    {
        System.out.println(bus.getName()+ " can park in " + bus.getSpot() );
        System.out.println(bus.getName() + ": Need " + bus.getOilchange()  + random.nextBoolean() + ", Need cleaning: " + random.nextBoolean());
        listBus.wait();
     }
}

从上面的打印行,我得到了这个输出:

Bus12: Need oilchange: false, Need cleaning: true

我有什么方法可以在if语句中使用这些true或false吗?

1 个答案:

答案 0 :(得分:2)

你需要先将一个随机布尔结果保存在一个变量中(如果你没有将该结果存储在变量中,在调用rand.nextBoolean()后,它就会消失,你不能再恢复那个结果)。

您可以通过以下方式实现调用rand.nextBoolean()的存储结果:

boolean needOil = rand.nextBoolean();
boolean needCleaning = rand.nextBoolean();

之后,随机结果你可以得到更多:

if (needOil) { // If needOil is equal to true... 
    // do stuff...
} else { // otherwise...
    // do another stuff... 
} 

if (needCleaning) {
    // do stuff...
} else {
    // do another stuff...
}

如果您的意图是使用两个随机结果的组合(在您对另一个答案的评论之后),您应该了解一下逻辑运算符(例如AND && ,或 || )并正确使用它们:

if (needOil && !needCleaning) { // If needOil is equal to true AND needCleaning is equal to false...
    System.out.println("Needs oil and doesn't need cleaning");
}