title: The corresponding then clause does not complete normally
body: <p>Given a simple if statement in the form</p>
  
  <pre><code>public static String test(boolean flag) {
      if (!flag) {
          return "no";
      } else {
          System.out.println("flag enabled");
      }
      return "yes";
  }
  </code></pre>
  
  <p>or</p>
  
  <pre><code>public static String test(final boolean flag) 
  {
      if (flag) 
      {
          System.out.println("flag enabled");
          return "yes";
      } 
      else 
      {
          return "no";
      }
  }
  </code></pre>
  
  <p>Eclipse gives me the warning, underlining the whole else block</p>
  
  <blockquote>
    <p>Statement unnecessarily nested within else clause. The corresponding then clause does not complete normally</p>
  </blockquote>
  
  <p>However, this...</p>
  
  <pre><code>public static String test(final boolean flag) 
  {
      if (flag) 
      {
          System.out.println("flag enabled");
          return "yes";
      }
      return "no";
  }
  </code></pre>
  
  <p>does not give the warning.</p>
  
  <p><a href="https://stackoverflow.com/questions/48088/returning-from-a-finally-block-in-java">this</a> question seems related, but I'm not using return in the else of the first example, and else is not finally.</p>
  
  <p>I understand that this is simply a preference, and that it can be turned off. However, I don't like ignoring things simply because I don't understand what is the problem. And I can't seem to find any documentation on why Eclipse added this as a configurable warning.</p>
  
  <p>So in all, What does <code>The corresponding then clause does not complete normally</code> mean? What is the problem that this warning is trying to protect me from?</p>