带标号的continue用于跳出指定外层循环的当前迭代,直接进入该循环的下一次判断;仅对for、while、do-while有效,标号须紧贴循环语句前且后跟冒号。

Java 中带标号的 continue 用于跳出**指定外层循环**的当前迭代,直接进入该循环的下一次判断。它只对带标号的循环语句(for、while、do-while)有效,不能用于 if 或普通语句块。
标号的写法和位置
标号是一个合法的标识符后跟冒号(:),必须紧贴在循环语句之前,且中间不能有其他语句(包括空行、注释也不行):
- ✅ 正确:
outer: for (int i = 0; i - ❌ 错误:
outer: ; for (...) { ... }或outer: int x = 1; for (...) { ... }
continue + 标号的实际效果
执行 continue 标号; 时,程序会立即跳转到对应标号的循环末尾,执行其更新语句(如 for 的第三部分),再进行条件判断。不是跳到标号所在行,而是跳到该循环结构的“自然结束点”:
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
- 对
for:执行update表达式 → 判断condition - 对
while:直接跳回while (condition)的判断 - 对
do-while:跳到while (condition)判断
典型使用场景:多层嵌套中精准跳转
当需要从内层循环直接跳过外层某次迭代(而非仅跳出内层),用带标号的 continue 比用布尔标志更清晰:
立即学习“Java免费学习笔记(深入)”;
search: for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (i == 2 && j == 3) {
continue search; // 跳过 i=2 这一整轮,i 直接变成 3
}
System.out.println("i=" + i + ", j=" + j);
}
}
上面代码中,当 i==2 且 j==3 时,不会继续执行 j=4,也不会再处理 i=2 的剩余逻辑,而是让 i 自增为 3,重新进入外层循环。
注意和常见误区
- 标号作用域仅限于它所标记的循环及其内部,不能跨方法或跨作用域引用
- 不能对
switch或if加标号后用continue(语法错误) - 与
break 标号;不同:后者是彻底退出该循环;前者是“跳过本次,继续下次” - 过度使用会让逻辑变难读,优先考虑重构(如提取方法)或用布尔变量控制

















