Java多层for语句嵌套之结束指定的for

  • Post author:
  • Post category:java


很多是时候我们经常遇到多层for语句嵌套的情况,但有时候我们想提早退出内部的for语句或者提早结束外部的for语句。

可以使用标签和break来解决,break+标签;

结束指定层的for循环(这里指定的层一般当前层的上面的任意一层或者当前层)

1.结束外循环(我们可以给外循环上面添加一个标签)

        label1:
        for (int j = 0; j < 4; j++) {
            System.out.println("j="+j);
            for (int i = 0; i < 10; i++) {
                if (i == 2) {
                    break label1;  //直接结束外循环
                }
                System.out.print("i=" + i+" ");
            }
            System.out.println("test");
        }

结果分析:外循环第一循环先执行一次print语句后,执行内循环,内循环循环两次后,第三次由于有i==2,执行break语句,直接退出外循环(下面的打印i的值的语句和打印test的语句不在执行),当然了内循环也就退出了。

在这结果截图里插入图片描述

2.结束内循环(同样我们可以给循环上面添加一个标签,这里也可以直接使用break结束)

        label1:
        for (int j = 0; j < 4; j++) {
            System.out.println("j="+j);
            lable2:
            for (int i = 0; i < 10; i++) {
                if (i == 2) {
                   // break;  //结束内循环
                    break lable2;
                }
                System.out.print("i=" + i+" ");
            }
            System.out.println("test");
        }

结果分析:在每次外循环执行打印j的值后,进入内循环,内循环判断i的值是否等于2,等于2,结束内循环,if语句下面的打印i的值不在打印,不成立内循环语句打印i的值

  • break语句结束的是距离它最近的循环语句,在上面这种情况下,可以直接使用break结束内循环。
       label1:
        for (int j = 0; j < 4; j++) {
            System.out.println("j="+j);
            lable2:
            for (int i = 0; i < 10; i++) {
                if (i == 2) {
                    break;  //结束内循环
                    //break lable2;
                }
                System.out.print("i=" + i+" ");
            }
            System.out.println("test");
        }



版权声明:本文为weixin_43319946原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。