unreachable statement

三段代码:

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就是这么规定的。

posted @ 2013-06-05 15:09  crazywings  阅读(361)  评论(0编辑  收藏  举报