# Unterschied x++ und x=x++



## Voidshift (4. Nov 2015)

Hallo an Alle.

Nehmen wir an... x = 10.
x++ = 11

Nehmen wir wieder an... x = 10.
x=x++=10


Warum wird bei "x=x++", nicht 1 dazuaddiert.
Normaler Weise wird doch x der Wert 10 zugewiesen. Und danach wird es inkrementiert.
Also "10=10+1". Warum kommt dann aber 10 raus?


----------



## Tobse (4. Nov 2015)

Deine Erste Aussage ist auch falsch:
System.out.println(x++); // 10

x++ gibt zuerst den Wert von x zurück, und erhöht es DANN um 1.


```
int x = 10;
x = ++x; // x == 11

x = 10;
x++; // x == 11

x = 10;
x = x++; // x == 10
```


----------



## FrankM (4. Nov 2015)

Setze die Inkrementierung vor die Variable, nicht dahinter : a=++a,


----------



## Voidshift (4. Nov 2015)

Ok habs glaub ich verstanden.
bei 
x=x++;
verfährt das Programm also so
Schritt1: x ist 10 also ist x = 10 (x=x, da x=10, somit 10=10)
Schritt2: jetzt wird x um 1 erhöht, die Ausgabe erfolgt aber bereits im Schritt 1. Erst nach der Ausgabe wird x erhöht.


----------



## Joose (4. Nov 2015)

Genau ... die "Fachbegriffe" lauten Präinkrement und Postinkrement


----------



## Voidshift (4. Nov 2015)

Ok, Klasse.
dann gibts noch Postdekrement und Prädekrement, was im Prinzip das gleiche ist nur mit Minus (--).


----------



## Tobse (4. Nov 2015)

Voidshift hat gesagt.:


> Ok, Klasse.
> dann gibts noch Postdekrement und Prädekrement, was im Prinzip das gleiche ist nur mit Minus (--).


Völlig richtig.


----------

