Ternärer Operator, Syntaxfehler bei Verwendung der Zuweisung

Die folgenden 3 Codezeilen kompilieren OK. (Bitte beachten Sie, dass dieser Code ein Beispiel für "künstliche Java-Codierung" ist und daher in professionell geschriebenem Code nicht zu sehen ist.)

int x, y;
boolean b=true;

x = b ? y=1 : 2;  // Compiles OK.

Wenn ich jetzt den Code in Zeile 3 oben ändere, sodass er wie die folgende Codezeile unten aussieht, generiert der Compiler einen Fehler.

// Change the position of the "y assignment", and now the code doesn't compile.
x = b ? 1 : y=2;  

Hier ist die Syntax-Fehlermeldung:

Kann jemand bitte dieses Verhalten erklären (zu einem Anfänger Java-Anfänger)? Vielen Dank.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage