缺少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
语句中。虽然在编写逻辑上可能是不可能的,但是当
中的任何一个评估为真时,编译器需要返回。
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屋!