Rohan Deshmkh wrote:Why this code prints 3 and not enter into an infinite loop?
Doesn't the while(b=!b) always evaluates to true irrespective of the value of b?I thought assignment statement as a condition always evaluates to true.
And that is where the flaw is ... see section 15.26 of the JLS.
http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.26
specifically ...
At run-time, the result of the assignment expression is the value of the variable after the assignment has occurred.
Henry