 <p>The line</p> <pre><code>while ((nextLine = br.readNext()) != null) { </code></pre> <p>takes advantage of the fact that an "assignment" is also an "expression" that has a value - the assigned value.</p> <p>So the line, reading from inside the parentheses out, does the following:</p> <ol> <li>Calls <code>readNext()</code> for the object <code>br</code>;</li> <li>Assigns the result of the call to <code>nextLine</code>;</li> <li>Tests the value assigned for <code>null</code>;</li> <li>If it <em>is</em> <code>null</code>, it jumps past the body of the <code>while</code> loop, to 7.;</li> <li>If it is <em>not</em> <code>null</code>, it executes the body of the <code>while</code> loop;</li> <li>It then goes back to 1. again.</li> <li>It continues the program.</li> </ol>