It has to do with the order in which expresions are evaluated. I believe it works out like this: 1. calculate where results go 2. get the value of the expression 3. increment i 4. store the value from 2 in the location from 1 (thus over-writing the incremented i) Bill
David, always remember that there is some difference between the postfix and prefix.in ur code there is postfix i.e. the value is incremented after it is being assigned to itself or to some other variable.had it been prefix (++i) the output would be 3. hope i have cleared ur doubt.
Joined: Oct 10, 2000
Bill, When you say in line 3 increment i, it does not happen because = is of higher presedence than ++, so the increment never happens because it's after i? David
Hi David, The ++ operator has much higher percedence than assignment(=). Bill's steps are correctly ordered. The increment happens before (step 3) the assignment (step 4). Think of the postfix as using a special Java 'holding' area. 1. Place current value of i into holding area (move zero to holding area) 2. Increment current value of i (i now becomes 1) 3. Assign value in holding area to i (i now assigned zero) Simple but effective, Manfred.