Java中可使用带标签的continue语句跳转至指定外层循环下一次迭代;标签须紧贴for/while/do-while循环前,格式为“标识符:”,且中间不得有换行或语句隔开。

Java 中可以使用带标签的 continue 语句,从内层循环直接跳转到指定外层循环的下一次迭代,从而实现“跳过多层外循环”的效果。关键在于:标签必须紧贴在循环语句前(不能有换行或语句隔开),且只能用于 for、while、do-while 这三种循环结构。
标签的正确写法和位置
标签是一个合法的标识符后跟冒号(:),写在循环语句之前,中间不能有其他语句或空行:
- ✅ 正确:
outer: for (int i = 0; i - ❌ 错误:
outer: ; for (...) { ... }(分号隔开) - ❌ 错误:
outer: int x = 1; for (...) { ... }(中间有其他语句) - ❌ 错误:给
if或普通代码块加标签(Java 不允许)
用带标签的 continue 跳出多层嵌套
当执行 continue 标签名; 时,程序会立即结束当前最内层循环的本次迭代,并跳回到对应标签所标记的循环开头,开始下一次判断:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
outer: for (int i = 0; i < 3; i++) {
System.out.println("外层 i = " + i);
for (int j = 0; j < 3; j++) {
System.out.println(" 内层 j = " + j);
if (i == 1 && j == 1) {
System.out.println(" → 触发 continue outer");
continue outer; // 直接跳回 outer 循环开头,i++ 后继续
}
}
}
// 输出:
// 外层 i = 0
// 内层 j = 0
// 内层 j = 1
// 内层 j = 2
// 外层 i = 1
// 内层 j = 0
// 内层 j = 1
// → 触发 continue outer
// 外层 i = 2
// 内层 j = 0
// 内层 j = 1
// 内层 j = 2
与 break label 的区别
虽然 break 标签 和 continue 标签 都支持跨层跳转,但行为不同:
立即学习“Java免费学习笔记(深入)”;
-
break outer;:彻底退出outer循环,后续不再执行该循环任何迭代 -
continue outer;:跳过当前outer迭代的剩余部分,执行i++后判断是否继续下一轮 - 两者都只影响被标记的那个循环,不涉及其他未标记的中间层
实际使用建议
带标签的 continue 虽然功能明确,但易降低可读性。建议:
- 优先考虑重构逻辑,比如提取嵌套循环为独立方法,用
return替代多层跳转 - 若必须使用,确保标签名语义清晰(如
searchLoop:、validationLoop:) - 避免在深度超过 3 层的嵌套中滥用,容易引发维护困难
- 注意 IDE 和静态检查工具可能对标签用法提示较弱,需靠人工审阅保障正确性

















