我正在学习 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
- 有人可以提供更详细的解释吗?