# i++ und ++i: Wo ist der Unterschied?



## Flokati (21. Mai 2007)

```
int i = 0, j = 5, k = 5;
			do {
				j = j--;
				k = --k;
				i = ++i;
				j = ++j;
			} while (i<5);
		    System.out.println("j,k = " + j + " " + k);
```
Ausgabe:


> j,k = 10 0



Kann mir das mal einer erklären?? Ich hätte gedacht, das "j,k = 5 0" herauskommt, aber anscheinend wird "j = j--" gar nicht ausgeführt?!?  :bahnhof:


----------



## SlaterB (21. Mai 2007)

j = j--; 

==

int temp = j;
j= temp;
temp--;


--------


j = --j; 

== 

int temp = j; 
temp--;
j= temp;


----------



## Guest (21. Mai 2007)

Schau dir doch mal die Arithmetischen Operatoren an z.B. hier: Javainsel
Die Stichwörter nach denen du suchen solltest sind Prä- bzw. Post-Inkrement und Dekrement.

Der Prä-Inkrement Operator (also ++i) erhöht den Wert einer Variablen um 1 und gibt den neuen Wert als Ergebnis zurück, während der Post-Inkrement Operator (also i++) den Wert der Variablen zurück gibt und diese danach um 1 erhöht. Das gleiche verhält sich analog beim Dekrement (also --i und i--).


----------



## kleiner_held (21. Mai 2007)

Genauer gesagt erhoeht der Post-Inkrement Operator *zuerst* den Wert und gibt *dann* den alten Wert zurück.
Damit sind

```
i = i--;
i = i++;
i = i;
```
gleichwertig und reichlich sinnlos.


----------

