一、前言
在循环语句中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;
}
}
}
}
}
运行结果如下: