Java 带标签的continue和break的解析

一、前言

在循环语句中break、continue和return的出场率非常高,尤其是在多重循环中的使用频率更高,不得不说这给我们带来了很大的方便,让我们可以随心所欲的跳出当前循环、中止本次循环以及退出当前的方法。但是当循环层数太多的时候,仍然会让我们感觉力有不逮,那有没有更灵活的方法呢?答案是肯定的,Java为我们提供了带标签的continue和break。

二、概述

进入正题之前,我们有必要了解下标签的概念:

标签是后面跟有冒号的标识符,就像下面这样:
lable:
在Java中,标签起作用的唯一的地方刚好是在迭代语句之前。

所谓刚好是在迭代语句之前的意思,是说标签和循环语句之间不能有任何东西,它们是紧挨在一起的。就像下面这样:

private static void init() {
        lable:
            //标签和迭代语句之间,不能有任何东西,否则编译器会报错
        for(;;) {
            //迭代逻辑
        }
    }

下面我将以for循环的简单例子,来介绍下标签配合continue和break的用法:

1.例子比较简单,代码直接贴出来了,详情请看其中注释

public class BreakAndContinuetTest {

    public static void main(String[] args) {
        //开始循环
        init();
    }

    /**
     * 展示标签结合continue和break的用法
     * 下面为了查看效果将以双层循环为实例,多重循环同样支持
     */
    private static void init() {
        //定义一个计数器
        int count = 0;
        lable1:
            //标签和迭代语句之间,不能有任何东西,否则编译器会报错
        for(int i = 0; i < 5; i++) {
            System.out.println("已执行i:"+i);
            for(int j = 0; j < 5; j++){
                System.out.println("已执行j:"+j);
                count++;
                if(count == 2){
                    //会跳到标签的位置,并重新进入紧接着的那个标签后面的循环
                    continue lable1;
                }
                if(count == 3){
                    //中断并跳出标签紧挨着的后面的循环
                    break lable1;
                }
            }
        }
    }

}

运行结果如下:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/MingJieZuo/article/details/79668042