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吗?
答案 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");
}