它不编译,给出一个 unreachable statement 错误:
unreachable statement
while(true) { } return null;
虽然这并不存在任何编译问题,但我们知道它相当于上面的代码段:
while(true) { if(4>5) break; } return null;
编译器只是搜索break语句并认为循环 可以 终止,所以不担心吗?
编译器不计算条件语句中的表达式。即使你写了:
while (true) { if (false) { break; } }
它不会被检测为无限循环。