Operator trójskładnikowy, błąd składni podczas używania przypisania
Poniższe 3 wiersze kodu poniżej kompilują się OK. (Należy pamiętać, że ten kod jest przykładem „sztucznego kodowania Java”, a zatem nie będzie widoczny w profesjonalnie napisanym kodzie).
int x, y;
boolean b=true;
x = b ? y=1 : 2; // Compiles OK.
Jeśli teraz zmienię kod w linii # 3 powyżej, tak aby wyglądał jak poniższy wiersz kodu, kompilator generuje błąd.
// Change the position of the "y assignment", and now the code doesn't compile.
x = b ? 1 : y=2;
Oto komunikat o błędzie składni:
Czy ktoś może wyjaśnić to zachowanie (nowicjuszowi z Java)? Dziękuję Ci.