continue label与break label的区别

验证代码

public static void main(String[] args) {
        System.out.println("break");
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 10; j++) {
                if (j == 5) {
                    break;
                }
                System.out.println(i + ":" + j);
            }
            System.out.println("outer");
        }
        System.out.println("continue");
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 10; j++) {
                if (j == 5) {
                    continue;
                }
                System.out.println(i + ":" + j);
            }
            System.out.println("outer");
        }
        System.out.println("breakLabel");
        breakLabel:
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 10; j++) {
                if (j == 5) {
                    break breakLabel;
                }
                System.out.println(i + ":" + j);
            }
            System.out.println("outer");
        }
        System.out.println("continueLabel");
        continueLabel:
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 10; j++) {
                if (j == 5) {
                    continue continueLabel;
                }
                System.out.println(i + ":" + j);
            }
            System.out.println("outer");
        }
    }

执行结果

break
0:0
0:1
0:2
0:3
0:4
outer
1:0
1:1
1:2
1:3
1:4
outer
continue
0:0
0:1
0:2
0:3
0:4
0:6
0:7
0:8
0:9
outer
1:0
1:1
1:2
1:3
1:4
1:6
1:7
1:8
1:9
outer
breakLabel
0:0
0:1
0:2
0:3
0:4
continueLabel
0:0
0:1
0:2
0:3
0:4
1:0
1:1
1:2
1:3
1:4

结论

break和continue和简单不说

  1. break label跳到标签出并且结束整个循环
  2. continue label 跳到标签出开始,结束本次循环,进入下一次循环
  3. continue label后面的语句都不会执行(不论外层还是内层,不会输出outer);break跳出内存循环,break语句后面外层循环的语句会执行(会输出outer)。
    总而言之break结束循环,continue终止当前循环进入下一次循环,带label后只是后面要执行的起始代码位置改变了
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容