java中break和continue使用标记

break

1、结束switch
2、结束当前的循环语句,比如for,while

3、结合标记使用,作用于双层循环的外层循环

如下demo输出结果为外层和内层循环交替输出

public static void testBreak() {
        for (int i = 0; i < 3; i++) {
            System.out.println("outer" + i);
            for (int j = 0; j < 3; j++) {
                if (j == 1) {
                    break;
                }
                System.out.println("inner" + j);
            }
        }
    }

结果:

outer0
inner0
outer1
inner0
outer2
inner0

作为标记使用,跳出了外层循环,外层和内层循环各输出了一次

public static void testBreakFlag() {
        flag: for (int i = 0; i < 3; i++) {
            System.out.println("outer" + i);
            for (int j = 0; j < 3; j++) {
                if (j == 1) {
                    break flag;
                }
                System.out.println("inner" + j);
            }
        }
    }

结果:

outer0
inner0

continue

1、跳过当前循环内容的处理,继续下一个循环内容的处理

2、结果标记使用,

如下为continue一般使用

public static void testContinue() {
        for (int i = 0; i < 3; i++) {
            System.out.println("outer" + i);
            for (int j = 0; j < 3; j++) {
                if (j == 1) {
                    continue;
                }
                System.out.println("inner" + j);
            }
        }
    }

输出结果,外层循环输出一次,内层循环输出两次,内层循环跳过inner1的输出,如此共循环三次

outer0
inner0
inner2
outer1
inner0
inner2
outer2
inner0
inner2
View Code

使用标记

public static void testContinueFlag() {
        flag: for (int i = 0; i < 3; i++) {
            System.out.println("outer" + i);

            for (int j = 0; j < 3; j++) {
                if (j == 1) {
                    continue flag;
                }
                System.out.println("inner" + j);
            }
        }

    }

输出结果,与不使用标记的break输出结果相同

outer0
inner0
outer1
inner0
outer2
inner0

总结:

break使用标记时,在结束内层循环的同时,也可以结束外层循环,可以对外层循环进行控制

continue使用标记时,满足内循环条件后,跳到了外层循环的指定位置继续执行,内循环的剩下的循环不再执行,在本例中类似break,但不能认为就是和break效果完全相同的

 如果不使用break标记,也可以通过其他方式来实现出break标记的功能,如

public static void testBreakFlagSame() {
        boolean end = false;
        for (int i = 0; i < 3; i++) {
            if (end) {
                break;
            }
            System.out.println("outer" + i);
            for (int j = 0; j < 3; j++) {
                if (j == 1) {
                    end = true;
                    break;
                }
                System.out.println("inner" + j);
            }
        }
    }

输出结果与使用break标记相同

outer0
inner0
原文地址:https://www.cnblogs.com/qq931399960/p/15686925.html