三段代码:
code A:
public void testUnreachable(){ System.out.println("test");
return;
System.out.println("unreachable"); }
code B:
public void testUnreachable(){ if(true) System.out.println("test"); return; System.out.println("unreachable"); }
code C:
public void testUnreachable(){ while(true) System.out.println("test"); return; System.out.println("unreachable"); }
结果:
只有代码B通过编译,A和C都会抛出error :"unreachable statement"。
原因:if这样的条件表达式比较特殊,它不会被"evaluated",所以代码合理的,其他的都不行,为什么?JLS就是这么规定的。