Следующий код не выдает ошибку компиляции Unreachable statement
.
if(true)return;
int x;
В течение многих лет я считал, что это потому, что компилятор не обращает особого внимания на заданные условия.
Сегодня я обнаружил, что компилятор понимает условия,
int x;
if (true) {
x = 0;
}
int y = x;
потому что в противном случае это должно привести к другой ошибке компиляции variable x might not have been initialized
. Который на самом деле отлично компилируется и работает. Так,
Понимает ли компилятор Java условия, заданные в операторах if
?