# Verständnisproblem beim Postinkrement und Postdekrement



## waschbaermasch (24. Nov 2014)

Hallo!

int b = 2;
b = b++
System.out.println(b);


ist meine "Angabe". Ich weiß, dass das Postinkrement b++ dann b ergibt und b um 1 erhöht, ich habe nur noch nicht verstanden, wann das genau passiert.
Wird b schon am Ende von der zweiten Zeile um 1 erhöht oder geschieht das erst mit "System.out.println(b)"?
Meinem Verständnis nach wäre die Ausgabe nach der dritten Zeile noch b = 2. Stimmt das?

Vielen Dank im Voraus für die Hilfe!


----------



## Joose (24. Nov 2014)

Probiere es mal mit diesem Snippet aus:


```
int a = 1;
int b = 2;
System.out.println(a);
System.out.println(b);
a = a + b++;
System.out.println(a);
System.out.println(b);

a = 1;
b = 2;
System.out.println(a);
System.out.println(b);
b++;
a = a + b;
System.out.println(a);
System.out.println(b);
```


```
int a = 1;
int b = 2;
System.out.println(a);
System.out.println(b);
a = a + ++b;
System.out.println(a);
System.out.println(b);

a = 1;
b = 2;
System.out.println(a);
System.out.println(b);
++b;
a = a + b;
System.out.println(a);
System.out.println(b);
```

Damit kannst du einfacher kontrollieren ob bzw. wann sich b wirklich erhöht hat.


----------



## BuckRogers (24. Nov 2014)

Grundlegendes: der Code rechts vom Zuweisungsoperator '=' wird in Java immer zuerst ausgeführt. Das heißt, dass Wert von int b erst erhöht wird und dann in b gesetzt wird. Das ist prinzipiell so.


----------

