为什么我错过了使用else的return语句

时间:2016-11-04 05:49:58

标签: java if-statement methods return

我正在试图理解为什么我的编译器抱怨我错过了一个return语句,而实际上我在我的方法结束时有其他故障保护。为什么会这样? 其他什么时候不包括退货

这是一个原始的例子:

public boolean greaterOrEqual(int a){
    int z = 10;
    if(z > a){
       return false;
    }
    else if(z < a){
       return true;
    }
    else{
       return true; //if if and else if fail, else is the last resort
    }
}

从功能上讲,它与此

相同
public boolean greaterOrEqual(int a){
    int z = 10;
    if(z > a){
       return false;
    }
    else if(z < a){
       return true;
    }

return true; //if if and else if fail, returns true

}

2 个答案:

答案 0 :(得分:1)

我相信以下内容可以解决您的问题:

public boolean greaterOrEqual(int a){
    int z = 10;
    return z <= a;
}

顺便说一下,StackOverflow帮助中心有很多有趣的文章。我建议How to create a Minimal, Complete, and Verifiable exampleHow to ask

您所描述的问题无法复制。我们每个人都可以编译它。

答案 1 :(得分:1)

如果声明结果变量,则可以避免if else块内的return语句。

这种方法具有与你的类似的逻辑结构,并且bluej可能不会抱怨它。

public boolean greaterOrEqual(int a)
{
    int z = 10;
    boolean result;
    if (a >= z)
    {
        result = true;
    }
    else
    {
        result = false;
    }
    return result;
}

虽然xenteros解决方案仍然更加优雅。