Java——必须返回boolean类型(但我要返回true或false)
}Java——必须返回boolean类型(但我要返回true或false),java,boolean,return,Java,Boolean,Return,} 我很困惑,为什么我会得到一个错误,其中公共方法parrotTrouble加下划线表示它必须返回一个布尔值,而我现在有这个布尔值?编译器说您需要返回一些值,因为您的方法返回类型是布尔值 您在If条件下返回了false,在else If条件下返回了true 您还需要返回if/else if之外的内容。 根据@Andreas的评论,代码可以简化为以下内容 根据OP的原件 public class CodingBat { public static void main(String[] args){
我很困惑,为什么我会得到一个错误,其中公共方法parrotTrouble加下划线表示它必须返回一个布尔值,而我现在有这个布尔值?编译器说您需要返回一些值,因为您的方法返回类型是
布尔值
您在If条件下返回了false,在else If条件下返回了true
您还需要返回if/else if之外的内容。
根据@Andreas的评论,代码可以简化为以下内容
根据OP的原件
public class CodingBat {
public static void main(String[] args){
CodingBat object = new CodingBat();
System.out.print(object.parrotTrouble(true,20));
}
public boolean parrotTrouble(boolean talking, int hour) {
if(talking == false){
return false;
}
else if(hour > 7 || hour >20){
return true;
}
}
编辑
public boolean parrotTrouble(boolean talking, int hour) {
if (talking == false) {
return false;
} else if (hour > 7 || hour > 20) {
return true;
}
return booleanValue; // can be true/false as per your logic
}
正如@Codebender所指出的,如果出现其他情况,则使用,然后不使用
需要在最后返回布尔值,但如果使用if-
否则,如果
,则必须在最后返回布尔值。就像编译器一样
也不确定它是否会在某个条件下运行
public boolean parrotTrouble(布尔语言,整数小时){
布尔答案=假;
if(talking==false){
答案=错误;
}
否则,如果(小时<7 | |小时>20){
答案=正确;
}
返回答案;
}
谢谢你的帮助,我将我的代码改成了这个,它工作正常,回答了第三种可能性的问题,编译器不知道是否会始终满足其他条件之一,因此它要求你提供第三个/故障安全条件测试hour>20
将永远不会被检查,因为hour>7
在hour>20时总是正确的。实际上没有else
条件,只有else如果
。。。事实上,这就是问题所在。。。如果他有一个else
,它会正常运行…@MichaelCowie yes code很好,您只需要用一些默认值初始化变量answer
。boolean答案=false
当然,明显的退路是return false
,因为鹦鹉在白天不会造成麻烦(假设检查被更正为小时<7
),所以它可以压缩为return(说话&(小时<7 | |小时>20))代码>——另外,您应该将代码改回使用boolean
,而不是boolean
,作为参数。@Andreas正确地指出、制作和编辑,boolean
我正在试验一些东西,所以输入错误
public boolean parrotTrouble(boolean talking, int hour) {
return (talking && (hour > 7 || hour > 20));
}
public boolean parrotTrouble(boolean talking, int hour) {
boolean answer = false;
if(talking == false){
answer = false;
}
else if(hour < 7 || hour >20){
answer = true;
}
return answer;
}