public class BarkingDog {
public static void main(String[] args) {
shouldWakeUp(true , 23);
}
public static boolean shouldWakeUp(boolean barking, int hourOfDay) {
if(barking==true) {
if(hourOfDay>=0 && hourOfDay<=23){
if(hourOfDay<8 && hourOfDay>22){
System.out.println("WakeUp");
return true;
}
}
}
System.out.println("No need to WakeUp");
return false;
}
这段代码应该返回true,并且应该打印"Wakeup",但是它返回false并打印"No need to sleep“。这里的逻辑错误是什么,我想知道。
发布于 2021-04-19 02:33:02
看一下最后一个条件,它应该是hourOfDay<8 || hourOfDay>22
。这两行表示的是逻辑or而不是and。现在23既不能小于8,也不能大于22。
https://stackoverflow.com/questions/67152043
复制相似问题