Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我和其他人一起遗漏了一个返回声明_Java_If Statement_Methods_Return - Fatal编程技术网

Java 为什么我和其他人一起遗漏了一个返回声明

Java 为什么我和其他人一起遗漏了一个返回声明,java,if-statement,methods,return,Java,If Statement,Methods,Return,我试图理解为什么我的编译器抱怨我缺少一个return语句,而事实上我在方法的末尾有fail-safe-else。为什么会这样?else什么时候不包括退货 下面是一个基本示例: public boolean greaterOrEqual(int a){ int z = 10; if(z > a){ return false; } else if(z < a){ return true; } else{

我试图理解为什么我的编译器抱怨我缺少一个return语句,而事实上我在方法的末尾有fail-safe-else。为什么会这样?else什么时候不包括退货

下面是一个基本示例:

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;
如果(z>a){
返回false;
}
else如果(z
在功能上,它将与此相同

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

}
public boolean greaterOrEqual(int a){
int z=10;
如果(z>a){
返回false;
}
else如果(z
我相信以下方法可以解决您的问题:

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

return z如果声明一个结果变量,可以避免在
If-else
块中使用return语句。

此方法的逻辑结构与您的类似,bluej可能不会对此抱怨

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

尽管Xentros解决方案仍然非常优雅。

您的代码编译得很好。要么是编译时实际代码中有一个打字错误,要么是在其他行上有错误,要么是您的环境中出现了其他问题。您不需要任何其他解决方案,我知道它不能回答您的问题,但它们完全没有必要。@TofuBeer你当然是对的,但是作为一个风格问题,我认为把它们放在那里会更好一些,这取决于整个代码。从风格的角度来看,我更喜欢每个方法一次返回,除了在方法开始时通过参数检查提前返回,通常通过抛出来完成。你是对的,这似乎是一个IDE excl唯一的问题是,eclipse没有给我一个错误,而bluej给了我。这个例子有点糟糕,是的,它可以简化为您所拥有的,但我特别关注的是else{}如果你的老师不强迫你使用BlueJ,不要。切换到Eclipse或IntellJ,因为习惯了其中的一种会在将来加速你的工作。BlueJ是必需的,而Eclipse由于某种原因在我的计算机上有bug(BlueJ中没有出现奇怪的错误).我无法设置IntelliJ,尽管它似乎是三者中最好的-我找不到JetBrains关于如何运行它的任何教程。可能是因为我是新手,我不了解它70%的奇特功能