+ 2
How this results in infinite loop i = i++?
for(int i=0 ; i<5;){ System.out.println(i); i = i++; }
2 Réponses
+ 3
i++ creates a copy of the old i, changes i and then returns the copy of the old i.
So you create a copy, change the value, and then, using i = ... , store the old value again in i, effectively nullifying the change.
Instead you should normally just write i++.
+ 4
i = i++ means i equals i THEN increase i by one, so as HonFu said you're just re-storing the old value of i - it always equals 0, using just i++ is neater.
You could also change it to i = ++i you change the order of actions to increase i by one THEN store the new value as i, and you'll get the result you want.