我似乎无法获得示例输出,我的代码返回true、true、false和false.我的测距没有遗漏任何附加的条件语句吗

  • 本文关键字:false true 任何附 语句 条件 输出 返回 代码 java
  • 更新时间 :
  • 英文 :


我有以下场景:我们有一只喜欢吠叫的狗。如果狗在晚上吠叫,我们就得醒过来!

编写一个具有2个参数的方法shouldWakeUp。

第一个参数应该是布尔类型,并命名为吠叫,它表示我们的狗是否正在吠叫。2nd参数表示一天中的小时,类型为int,名称为hourOfDay,有效范围为0-23。

如果狗在8点前或22小时后吠叫,我们必须醒来,所以在这种情况下,返回true。

在所有其他情况下,返回false。

如果hourOfDay参数小于0或大于23,则返回false。

输入/输出示例:

  • shouldWakeUp (true, 1)→应返回true
  • shouldWakeUp (false, 2)→应该返回false,因为狗没有吠叫
  • shouldWakeUp (true, 8)→应该返回false,因为它不在8之前
  • shouldWakeUp (true, -1)→应该返回CCD_ 8,因为CCD_

这是我的代码:

public static boolean shouldWakeUp(boolean barking, int hourOfDay) {
if (hourOfDay < 0 || hourOfDay >= 23) {
return false;
}
if (hourOfDay < 8 || hourOfDay >= 22) {
return true;
} else {
return false;
}
}

您忘记使用boolean barkinghourOfDay可能是23:

public static boolean shouldWakeUp(boolean barking, int hourOfDay) {
if (!barking)
return false;
if (hourOfDay < 0 || hourOfDay > 23)
return false;
return hourOfDay < 8 || hourOfDay >= 22;
}

输出:

System.out.println(shouldWakeUp(true, 1));      // true
System.out.println(shouldWakeUp(false, 2));     // false
System.out.println(shouldWakeUp(true, 8));      // false
System.out.println(shouldWakeUp(true, -11));    // false
public static boolean shouldWakeUp(boolean barking, int hourOfDay) {
if (hourOfDay < 0 || hourOfDay > 23) {
return false;
} else if (barking && (hourOfDay < 8 || hourOfDay > 22)) {
return true;
} else {
return false;
}
}
public class Dog {
public static void main(String[] args) {
boolean a=shouldWakeUp(false,2);//works fine for all values
System.out.println(a);
}
public static boolean shouldWakeUp(boolean barking,int hourOfDay) {
if((barking)&&((hourOfDay>22)||(hourOfDay<8))&&(hourOfDay>=0)&&(hourOfDay<=23)) {
return true;
}return false;
}
}