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.