Why should compilation fail for this code?
<p>Another SCJP question. I think the output is K=7, but the book's answer is "compilation fails". I just don't see anything wrong with the code.</p>

<pre><code>1. class RevQOne{
2.   public static void main(String [] args) {
3.     boolean i = true;
4.     boolean j = false;
5.     short k = 10;
6.    if((k == 10) &amp;&amp; (j = true))k--;
7.    if((i = false) || ( k == 9)) 
8.        k--;
9.        k--;
10.     System.out.println("k=" + k);
11.   }
12. }
</code></pre>

<p>PS: Both the silly = signs in lines 6 and 7, and the if with missing braces in 7, are intentional. The question is meant to test my knowledge of how those things act when misused, I suppose.</p>
