Java 为什么我和其他人一起遗漏了一个返回声明
我试图理解为什么我的编译器抱怨我缺少一个return语句,而事实上我在方法的末尾有fail-safe-else。为什么会这样?else什么时候不包括退货 下面是一个基本示例: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{
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%的奇特功能