如果我尝试编译
for(;;)
{
}
System.out.println("End");
Java编译器产生一个错误,显示为Unreachable statement
。但是如果我添加了另一个“unreachable”(据我所说) break
语句,并使它:
for(;;)
{
if(false) break;
}
System.out.println("End");
它会编译。为什么它不会产生错误?
发布于 2015-12-24 21:40:35
正如my answer to a similar question中所解释的,作为显式后门,特定的构造if(compile-time-false)
不受不可达性规则的约束。在这种情况下,编译器会将您的break
视为可访问的。
https://stackoverflow.com/questions/34453585
复制相似问题