有时我发现了一些像这样的编译错误 -
public static boolean returnTrueFalse(){
if(someConditions) return true;
if(someConditions){
//do something
return true;
}
if(someConditions){
//do something
return false;
}
//GOT A COMPILATION ERROR HERE
}
在上述情况下,我们在评论部分收到了编译错误 - missing return statement
。那么我们怎样才能避免这种情况呢?
由于
答案 0 :(得分:1)
好吧,编译错误的消息非常清楚:您的代码必须遇到每个可能的执行路径的return语句,因为您的方法具有非void返回类型。只需为最后一个案例添加一个return语句,或者如果在正常执行中不能达到此状态,则抛出异常。
答案 1 :(得分:1)
或者您可以使用以下结构。在return
变量boolean
-
decision
语句
public static boolean returnTrueFalse(){
boolean decision = false //or may be true based on your situation.
if(someConditions) decision = true;
if(someConditions){
//do something
decision = true;
}
if(someConditions){
//do something
decision = false;
}
//returns at last; a single return
//no branching
return decision;
}
现在由于多个return
语句,这里没有分支。所以没有编译错误。
答案 2 :(得分:0)
在任何return
之外添加if
语句,或在其中一个else
语句中添加if
。您的函数类型为boolean
,应该返回类型boolean
,而不返回类型为void的函数。