How do the post increment (i++) and pre increment (++i) operators work in Java?
++a
increments and then uses the variable.a++
uses and then increments the variable.
If you have
a = 1;
and you do
System.out.println(a++); //You will see 1
//Now a is 2
System.out.println(++a); //You will see 3
codaddict explains your particular snippet.
Does this help?
a = 5;
i=++a + ++a + a++; =>
i=6 + 7 + 7; (a=8)
a = 5;
i=a++ + ++a + ++a; =>
i=5 + 7 + 8; (a=8)
The main point is that ++a
increments the value and immediately returns it.
a++
also increments the value (in the background) but returns unchanged value of the variable - what looks like it is executed later.
In both cases it first calculates value, but in post-increment it holds old value and after calculating returns it
++a
- a = a + 1;
- return a;
a++
- temp = a;
- a = a + 1;
- return temp;