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;
}
}
}
我很困惑,为什么我得到一个错误,其中公共方法parrotTrouble被强调说它必须返回一个布尔值,我现在有?
答案 0 :(得分:2)
编译器说你需要返回一些值,因为你的方法返回类型是boolean
。
您有returned false in If condition
和return true in else if condition
。
你还需要在if / else之外返回一些东西。
如下所示,根据@Andreas的评论,代码可以减少到
以下原创为OP
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
}
修改强>
public boolean parrotTrouble(boolean talking, int hour) {
return (talking && (hour > 7 || hour > 20));
}
正如@Codebender指出的那样,使用
if else condition
,然后使用否 需要在最后返回布尔值,但如果使用if - else if
则必须在最后返回布尔值。正如编译器一样 也不确定它肯定会进入其中一个条件。
答案 1 :(得分:0)
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;
}
感谢您的帮助,我将代码更改为此代码并且工作正常并回答了问题&lt; 3