Java中break和continue加标签可跳出或跳过指定外层循环;标签须为合法标识符后跟冒号,紧贴目标循环语句前,不可换行或夹杂其他语句。

Java 中的 break 和 continue 本身只作用于最内层循环,但加上标签(label)后,就能明确指定要跳出或跳过的具体哪一层循环。这是处理多重嵌套时最直接、最干净的控制方式。
标签怎么写才有效
标签必须是合法标识符,后面紧跟冒号,且**紧贴在目标循环语句之前**,中间不能有换行、空行或任何其他语句:
- ✅ 正确:
outer: for (int i = 0; i < 3; i++) { ... } - ❌ 错误:
outer: // 换行了<br>for (int i = 0; i < 3; i++) { ... } - ❌ 错误:
int x = 5;<br>outer: for (...) { ... }(标签不能和变量声明混在一起)
用带标签的 break 跳出指定外层循环
当执行 break 标签名; 时,程序会立即终止该标签所标记的整个循环,并继续执行该循环之后的代码:
- 适合场景:找到目标后彻底退出多层循环,比如二维数组中搜索某个值
- 注意:它不是“跳到某处”,而是“终止那个循环体”,后续语句照常执行
示例:
立即学习“Java免费学习笔记(深入)”;
outer: for (int i = 0; i < 3; i++) {System.out.println("外层 i = " + i);
for (int j = 0; j < 3; j++) {
if (i == 1 && j == 1) break outer;
System.out.println(" 内层 j = " + j);
}
}
System.out.println("循环结束");
用带标签的 continue 跳过外层循环的当前轮次
continue 标签名; 会让控制权回到对应标签循环的**更新语句和条件判断环节**,相当于跳过本轮外层循环剩余部分,直接进入下一次迭代:
- 只适用于
for循环(因为需要执行增量表达式,如i++) - 不能用于
while或do-while,否则编译报错 - 常见用途:按条件跳过整组数据,比如跳过某一行全部处理逻辑
示例:
立即学习“Java免费学习笔记(深入)”;
outer: for (int i = 0; i < 3; i++) {System.out.println("外层开始 i = " + i);
for (int j = 0; j < 3; j++) {
if (j == 1) continue outer;
System.out.println(" i=" + i + ", j=" + j);
}
System.out.println("外层结束 i = " + i);
}
容易忽略的关键细节
- 标签名不能和变量、方法名重复,否则编译不通过
- 普通 break/continue 不加标签时,永远只影响最近的那层循环
- 标签只能修饰循环语句(
for/while/do-while),不能标在 if 或方法块上 - continue 带标签时,如果目标不是 for 循环,编译器会直接拒绝


















