Следующие 3 строки кода ниже компилируются ОК. (Обратите внимание, что этот код является примером "искусственного кодирования Java" и, следовательно, не будет рассматриваться в профессионально написанном коде.)
int x, y;
boolean b=true;
x = b ? y=1 : 2; // Compiles OK.
Если теперь изменить код в строке № 3 выше, так что он выглядит как следующая строка кода ниже, компилятор генерирует ошибку.
// Change the position of the "y assignment", and now the code doesn't compile.
x = b ? 1 : y=2;
Вот сообщение об ошибке синтаксиса:
Может кто-нибудь объяснить это поведение (для новичков Java-обучения)? Спасибо.