• Post Reply Bookmark Topic Watch Topic
  • New Topic

Problem with while statement  RSS feed

 
Rohan Deshmkh
Ranch Hand
Posts: 127
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
Henry Wong
author
Sheriff
Posts: 23295
125
C++ Chrome Eclipse IDE Firefox Browser Java jQuery Linux VI Editor Windows
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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

 
Rohan Deshmkh
Ranch Hand
Posts: 127
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Ok thanks , i got it.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!