File APIs for Java Developers Manipulate DOC, XLS, PPT, PDF and many others from your application. http://aspose.com/file-tools
Big Moose Saloon
 Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies Register / Login

# Operator evaluation order

Alexan Kahkejian
Ranch Hand

Joined: Apr 30, 2003
Posts: 74
Hi all

Can someone explain the order of evaluation and how y holds the value 0.
Alexan

Alexan Kahkejian<br />SCJP<br />SCWCD<br /><a href="http://www.javaemployer.com" target="_blank" rel="nofollow">http://www.javaemployer.com</a>
Saravanakumar Rajmohan
Greenhorn

Joined: Jul 08, 2003
Posts: 17
x = -1
y= x++ + ++x
operands are always evaluated from left to right
before an operation is performed all the operands are
evaluated except in conditional operators such as (&& , || and in some cases of ?
then the operation is performed based on precedence
ans associativity.
before addition could be performed both the operand has to be
evaluated
Left operand
x++ is evaluated . since it is postfix expression the vlaue of the expression is the value of x before
the increment is performed. so the expression will get the value -1(which is the value of x before increment) but x will be incremented by one
so x will be -1+1=0.
Right operand
++x is evaluated . since it is prefixx expression the value of the expression is the value of x after
the increment is performed. so the expression will get the incremented value of x that is 1.
Left expression + Right expression
-1 + 1 = 0
so y=0
x =1
hope this helps
Saravanakumar R
Greenhorn

Joined: Dec 10, 2002
Posts: 6
Hello Alexan:
First the postfix and prefix operators are evaluated and the added together as they have higher precedence over addition.
So coming back to your question:
int x = -1;
y = x++ + ++x;
This would be evaluated as:
y = -1 + 1
y = 0
The postfix operator (x++) gets the value -1 first and then x is incremented by 1 to give 0.
The prefix operator (++x) adds 1 to x first, then uses the new value of x as the value of the expresiion.
Hope this helps.

I agree. Here's the link: http://aspose.com/file-tools

subject: Operator evaluation order