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.

questionAnswers(4)

yourAnswerToTheQuestion