Я готовлюсь к экзамену Java и столкнулся с ошибкой компилятора "недостижимое утверждение", например:
Source.java:10: error: unreachable statement
System.out.println("This code is not reachable");
Я пытаюсь понять, когда это произойдет или не произойдет - например, не происходит в следующих случаях:
// Case #1
if (true) {
System.out.println("This code is reachable");
} else {
System.out.println("This code is not reachable"); // Compiles OK
}
// Case #2
for (i = 0; i < 5; i++) {
if (true) continue;
System.out.println("This code is not reachable"); // Compiles OK
}
Кажется, компилятор недостаточно умен, чтобы определять, когда условие if
постоянно true
- может кто-то предоставить более подробное объяснение?