• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Strange Assertion Behaviour

 
Arthur Blair
Ranch Hand
Posts: 71
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In the following example from Dan Chisolm:



I would have thought that this wouldn't compile because the expression i1 = j1 + x1 doesn't return a boolean, it returns an int. I thought that the assert() method needed to receive a boolean. So what is going on here? I'm a little confused.
 
marc weber
Sheriff
Posts: 11343
Java Mac Safari
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The complete expression is (i1 = j1 + x1) < 6; which does return a boolean.
[ February 10, 2006: Message edited by: marc weber ]
 
Joshua Smith
Ranch Hand
Posts: 193
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Arthur-

You're right that (i1 = j1 + x1) doesn't return a boolean, but (i1 = j1 + x1) < 6 does. It's saying "assign i1 the value of j1 plus x1 and then compare the result to see if it's less than 6.

(i1 = j1 + x1) < 6

translates to

result of addition assigned to i1 compared with 6

and that evaluates to a boolean.

Josh
 
Arthur Blair
Ranch Hand
Posts: 71
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
clearly my brain isn't working today. Thanks guys.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic