带标签的continue直接跳转到指定外层循环的下一次迭代开始处,用于多层嵌套循环中跳过外层某层剩余逻辑;标签为标识符加冒号,紧邻for/while/do-while循环,不能用于if或代码块。

Java 中带标签的 continue 可以跳出当前所在循环,并**直接跳转到指定外层循环的下一次迭代开始处**,而不是简单地跳出内层循环。它常用于多层嵌套循环中,当某个条件满足时,需要跳过外层某一层的剩余逻辑,继续执行该层的下一轮循环。
标签语法和基本用法
标签是一个合法的标识符后跟冒号(:),放在循环语句之前。注意:标签必须紧邻循环语句,中间不能有其他语句或空行。
- 标签只能用于
for、while、do-while循环(不能用于if或普通代码块) -
continue 标签名;表示:终止当前最内层循环的本次迭代,并从指定标签标记的循环处开始下一次迭代 - 与带标签的
break不同,continue不会退出整个循环,而是“跳过本轮,继续下轮”
典型使用场景:跳过外层 for 的当前轮次
比如遍历二维数组时,若某行包含特定值,希望整行都不处理,直接进入下一行:
outer:
for (int i = 0; i < 3; i++) {
System.out.println("第 " + i + " 行开始");
for (int j = 0; j < 4; j++) {
if (i == 1 && j == 2) {
System.out.println("触发跳过:跳至 outer 下一轮");
continue outer; // 跳出内层循环,同时跳过 outer 当前轮次剩余部分,进入 i=2
}
System.out.println(" [" + i + "][" + j + "]");
}
System.out.println("第 " + i + " 行结束"); // 这行在 continue outer 后不会执行
}
输出中,“第 1 行结束”不会打印,且 i=1 的后续 j=3 也不会执行,直接进入 i=2 的循环。
立即学习“Java免费学习笔记(深入)”;
注意事项和常见误区
- 标签名区分大小写,且作用域仅限于其后紧邻的循环及其内部所有嵌套结构
- 不能跨方法或跨作用域引用标签;标签不能重复定义在同一作用域内
- 不要滥用——过度使用带标签的
continue会降低代码可读性,优先考虑重构为方法或使用布尔标志控制流程 - 如果只是想跳出内层循环,用普通
break即可;只有明确需要“跳过外层某次迭代”时才用带标签的continue
对比 break 和 continue 的标签行为
假设同样用 outer: 标记外层循环:
-
break outer;→ 立即退出整个外层循环,后续所有轮次都不执行 -
continue outer;→ 结束当前外层循环本轮的所有剩余语句,立即开始下一轮(如i++后继续判断条件)
二者目标不同:一个是“终止循环”,一个是“跳过本轮”。选哪个取决于你要实现的控制流语义。


















