Java 有人能看出我错在哪里吗?我的代码应该返回true,但它返回false,它不应该返回 公共级吠犬{ 公共静态void main(字符串[]args){ 应该醒来(正确,23); } 公共静态布尔shouldWakeUp(布尔吠叫,inthourofday){ 如果(吠叫==真){ 如果(houroday>=0&&hourodayhouroday 22

Java 有人能看出我错在哪里吗?我的代码应该返回true,但它返回false,它不应该返回 公共级吠犬{ 公共静态void main(字符串[]args){ 应该醒来(正确,23); } 公共静态布尔shouldWakeUp(布尔吠叫,inthourofday){ 如果(吠叫==真){ 如果(houroday>=0&&hourodayhouroday 22,java,Java,它总是false。因此,if分支永远不会执行。看看最后一个条件,它应该是hourOfDay22。这两行表示逻辑or而不是and。现在23不能小于8,也不能大于22。你知道“&&”表示“两者都必须为真”吗?你的意思是if(hourOfDay22){……}?(此处| |表示或)。 public class BarkingDog { public static void main(String[] args) { shouldWakeUp(true , 23); } public static

它总是false。因此,if分支永远不会执行。

看看最后一个条件,它应该是
hourOfDay22
。这两行表示逻辑or而不是and。现在23不能小于8,也不能大于22。

你知道“&&”表示“两者都必须为真”吗?你的意思是
if(hourOfDay22){……}
?(此处| |表示或)。
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;

}
hourOfDay<8 && hourOfDay>22