Java - 必须返回类型boolean(但我返回true或false)

时间:2015-12-10 03:58:10

标签: java boolean return

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被强调说它必须返回一个布尔值,我现在有?

2 个答案:

答案 0 :(得分:2)

编译器说你需要返回一些值,因为你的方法返回类型是boolean

您有returned false in If conditionreturn 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