aspose file tools*
The moose likes Beginning Java and the fly likes Order of Evaluation for pre and post increment operators Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Order of Evaluation for pre and post increment operators" Watch "Order of Evaluation for pre and post increment operators" New topic
Author

Order of Evaluation for pre and post increment operators

Mohnish Khiani
Ranch Hand

Joined: May 17, 2010
Posts: 65
Whats the order of evaluation?


Output :
5 3

What is the right output :
1+2+2=5
(or)
1+1+3=5
vibhor sharma
Greenhorn

Joined: Dec 10, 2010
Posts: 19

Initially value of i=0;

now , int x=++i
i=0 initial
i=1 final

int x= ++i + i++
i=0 initial i=1 (initial)
i=1 final i=2(final)


int x= ++i + i++ + ++i
i=0 initial i=1 (initial) i=3(initial)
i=1 final i=1 (final; but i=2 will go) i=3 (final;i 's value)

1+1+3=5 (x's value)


....hope that helps

fred rosenberger
lowercase baba
Bartender

Joined: Oct 02, 2003
Posts: 11229
    
  16

Mohnish Khiani wrote:

What is the right output :
1+2+2=5
(or)
1+1+3=5

Wouldn't it have been easier to run the code yourself and find out?


There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
Mohnish Khiani
Ranch Hand

Joined: May 17, 2010
Posts: 65
i have executed the code and know the output is 5,but i wanted to know how?

That means evaluation is from left to right no matter pre or post operators?
Rob Spoor
Sheriff

Joined: Oct 27, 2005
Posts: 19670
    
  18

Correct. That code is equivalent to this:
But this also shows how dangerous it can be to use pre and post increment operators inside other statements. It's very easy to loose track of what's going on.


SCJP 1.4 - SCJP 6 - SCWCD 5 - OCEEJBD 6
How To Ask Questions How To Answer Questions
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Order of Evaluation for pre and post increment operators