while循环java中的break标签语句

时间:2014-07-21 09:35:37

标签: java

大家好,以下程序输出不了解可以任何机构解释

我打破了标签声明。我使用带有标签中断语句的3循环。

public static void main(String[] args) {

        int i=10,j=10,k=10;

        //Loop:
        while(i!=0)
        {
            System.out.println("i : "+i);

            iLoop:
            while(j!=0)
            {
                System.out.println(" j : "+j);
                j--;
                //iLoop:
                while(k!=0)
                {
                    System.out.println("  k : "+k);
                    k--;
                    i--;
                    break iLoop;
                    //break jLoop;
                    //break Loop;
                }
            }

        }
    }

输出就是这个

 i : 10
     j : 10
      k : 10
    i : 9
     j : 9
      k : 9
    i : 8
     j : 8
      k : 8

2 个答案:

答案 0 :(得分:1)

来自文档 -

An unlabeled break statement terminates the innermost switch, for, while, 
or do-while statement, but a labeled break terminates an 'outer statement'.

这意味着外部while循环将被破坏。

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html

但不建议使用标签。

答案 1 :(得分:1)

因为您已根据j标记了循环,所以当您调用带标签的break语句时,它会跳出该循环并转到i循环的下一次迭代。所以,输出对你所拥有的是有意义的。如果我们没有使用标签,并且有一个正常的break语句,那么每次迭代都不会看到i输出。正如其他人所说,尽量不要使用标签,因为正如您亲身经历的那样,它们令人困惑,难以阅读(容易错过),并且可以使用更直接的技术轻松取代。