缺少 if/else 语句的 return 语句 [英] Missing return statement for if/else statement
问题描述
public int checkGuess(int g, int randomnumber){
number=g;
this.randomnumber= randomnumber;
if (number == randomnumber)
return 0;
else if (number < randomnumber)
return -1;
else if (number > randomnumber)
return 1;
}
为什么这会给我一个丢失的返回语句错误?每个 if/else 都有回报最后一个括号出现错误
why is this giving me a missing return statment error? every if/else has a return the error comes up for the last bracket
推荐答案
每个 return
语句都在 if
语句中.虽然在逻辑上可能是不可能的,但编译器需要在 if
都没有计算为真时返回.
Every return
statement is inside an if
statement. While it may be logically impossible as written, the compiler needs a return for when none of the if
evaluate true.
我推荐:
public int checkGuess(int number, int randomnumber){
int retVal = 0;
this.randomnumber= randomnumber;
if (number == randomnumber) {
retVal = 0;
} else if (number < randomnumber) {
retVal = -1;
} else if (number > randomnumber) {
retVal = 1;
}
return retVal;
}
在我看来,此解决方案修复了编译器问题并略微提高了可读性.
This solution fixes the compiler problem and improves readability slightly, in my opinion.
或者,有这个解决方案:
Alternatively, there's this solution:
public int checkGuess(int number, int randomnumber){
this.randomnumber= randomnumber;
if (number == randomnumber) {
return 0;
} else if (number < randomnumber) {
return -1;
} else if (number > randomnumber) {
return 1;
} else {
//throw an exception
}
}
抛出异常将允许您在不返回任何内容的情况下退出该方法......因为可以说,如果您进入最终的else
,显然出了问题.
Throwing an exception will allow you to get out of the method without returning anything... because arguably, if you get to the final else
, something clearly went wrong.
这篇关于缺少 if/else 语句的 return 语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!