# Java ++a und a++



## altarate (5. Nov 2015)

Schönen guten Abend,

da ich gerade mit einem Studium zum Wirtschaftsinformatiker angefangen habe, bringe ich mir gerade Java selbst bei, da unser Dozent scheinbar kein Interesse an Neulingen hat. Dies ist aber ein anderes Thema.

Ich habe nun in einem Buch folgende Übungsaufgabe gefunden und verstehe sie nicht ganz.

Ich habe folgenden Code:


```
public class Plus {
    public static void main(String[]args){
        int a = 1, b = 2, c = 3, d =4;
        System.out.println(++a); // vor Ausgabe um 1 erhöt
        System.out.println(a);
        System.out.println(b++); // nach Ausgabe um 1 erhöht
        System.out.println(b);
        System.out.println((++c) + (++c));
        System.out.println(c);
        System.out.println((d++) + (++d));
    }
}
```

Als Ergebnis bekomme ich nun folgendes raus:

2    Mir ist klar dass für diese Ausgabe a = 1 vor der Ausgabe um 1 erhöht wird und somit 
2    2 x die 2 rauskommt.
2    Auch hier ist mir klar, dass b = 2 erst nach der Ausgabe um 1 erhöht wird und somit
3    oben einmal 2 und unten 3 herauskommt.

9    
5   
10

Bei den letzten 3 Zeilen verstehe ich nicht wie man auf 9, 5 und 10 kommen soll. 
Ich gehe im Falle von c ja von dem Wert 3 aus. Dieser wird vor Ausgabe jeweils um 1 erhöht.
ich komme bei dieser Zeile auf 8, da ((3+1 = 4) + (3+1 = 4)) ergibt. 
Wo liegt mein Denkfehler, dass ich nicht auf die 9 komme?
Und wie komme ich in den nächsten Zeilen auf die 5 bzw. 10.

Ich würde mich über Hilfe freuen.

Grüße


----------



## InfectedBytes (5. Nov 2015)

(++c) + (++c)
das rechte c hat nicht mehr den Wert 3, sondern 4, da c ja bereits links um eins erhöht wurde.
Dementsprechend wird hier also 4+5 gerechnet


----------



## altarate (5. Nov 2015)

Danke für die schnelle Antwort.
Und wie kommt dann die 5 zustande bzw die 10?


----------



## InfectedBytes (5. Nov 2015)

wir haben doch eben festgestellt, dass 9 ausgegeben wird, weil eben 4+5 gerechnet wird. c ist also 5. 
(d++)+(++d)
d ist 4, der linke ausdruck führt dazu, dass 4 für die berechnung genutzt wird, aber d dann auf 5 gesetzt wird. wenn also ++d gemacht wird, so wird d (was 5 ist) um eins erhöht und damit wird gerechnet.
also 4+6 = 10


----------



## altarate (5. Nov 2015)

Ach natürlich...

Vielen Dank für deine Hilfe.

Grüße


----------

