Hallo liebes Forum und ein frohes neues Jahr! 
Ich habe einige kleinere Fragen, die sich mir im Rahmen der Klausurvorbereitung stellen:
1)
int x = 1;
int y = 1;
x += y += x += y;
Wieso hat x hier den Wert 4 und y 3 nach der Ausführung? Nach dem ersten += ist doch x=2, y=1, nach dem zweiten += x=2 y=3 und nach dem dritten x=5 y=3.
Was sehe ich hier falsch?
2)
int x = 0;
System.out.println( ++x+x++ );
Wie genau wird der Ausdruck in der Klammer ausgewertet? Also was zuerst, was als letztes?
Kann man das so Klammern: ((++x)+x)++ ?
3)
int i = 0;
int j = 1;
boolean b = (j > 1) && (++i > 0);
Wieso ist i nach Ausführung weiterhin 0?
4)
System.out.println( 2 << 5 * 2 + 5);
Was genau bedeutet das << ? Ich hab natürlich schon google bemüht, aber so richtig schlauer bin ich nicht geworden.
5)
int x = 0;
boolean einBoolean = ~5 < 5 & 4 > 3 && false != true && false == true || (x = 8 & 4) < 8;
Hier hat man auch ähnlich wie bei 4 mir unbakannte Symbole. Aber das klärt sich vielleicht mit 4.
Danke für eure Hilfe!
Liebe Grüße,
Tom
Ich habe einige kleinere Fragen, die sich mir im Rahmen der Klausurvorbereitung stellen:
1)
int x = 1;
int y = 1;
x += y += x += y;
Wieso hat x hier den Wert 4 und y 3 nach der Ausführung? Nach dem ersten += ist doch x=2, y=1, nach dem zweiten += x=2 y=3 und nach dem dritten x=5 y=3.
Was sehe ich hier falsch?
2)
int x = 0;
System.out.println( ++x+x++ );
Wie genau wird der Ausdruck in der Klammer ausgewertet? Also was zuerst, was als letztes?
Kann man das so Klammern: ((++x)+x)++ ?
3)
int i = 0;
int j = 1;
boolean b = (j > 1) && (++i > 0);
Wieso ist i nach Ausführung weiterhin 0?
4)
System.out.println( 2 << 5 * 2 + 5);
Was genau bedeutet das << ? Ich hab natürlich schon google bemüht, aber so richtig schlauer bin ich nicht geworden.
5)
int x = 0;
boolean einBoolean = ~5 < 5 & 4 > 3 && false != true && false == true || (x = 8 & 4) < 8;
Hier hat man auch ähnlich wie bei 4 mir unbakannte Symbole. Aber das klärt sich vielleicht mit 4.
Danke für eure Hilfe!
Liebe Grüße,
Tom