来自每个分支的return语句

时间:2015-07-22 17:48:50

标签: java if-statement return

有时我发现了一些像这样的编译错误 -

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。那么我们怎样才能避免这种情况呢?

由于

3 个答案:

答案 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的函数。