title: Is break more efficient than checking the loop condition in Java?
body: <p>I was snooping through the Java API and found this in the Integer class</p>
  
  <pre><code>for (;;) {
      q = (i * 52429) &gt;&gt;&gt; (16+3);
      r = i - ((q &lt;&lt; 3) + (q &lt;&lt; 1));  // r = i-(q*10) ...
      buf [--charPos] = digits [r];
      i = q;
      if (i == 0) break;
  }
  </code></pre>
  
  <p>I am wondering why the developers took this approach, rather than something like</p>
  
  <pre><code>do {
      q = (i * 52429) &gt;&gt;&gt; (16+3);
      r = i - ((q &lt;&lt; 3) + (q &lt;&lt; 1));  // r = i-(q*10) ...
      buf [--charPos] = digits [r];
      i = q;
  } while (i != 0);
  </code></pre>
  
  <p>Why would someone favor a break statement over using loops the way loops were intended to be used? Is this somehow more efficient?</p>