我正在试图理解为什么我的编译器抱怨我错过了一个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
}
答案 0 :(得分:1)
我相信以下内容可以解决您的问题:
public boolean greaterOrEqual(int a){
int z = 10;
return z <= a;
}
顺便说一下,StackOverflow帮助中心有很多有趣的文章。我建议How to create a Minimal, Complete, and Verifiable example和How 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解决方案仍然更加优雅。