1. 概述
本文将深入讲解 Java 中的 continue
和 break
关键字,重点展示它们在实际开发中的使用场景。
简单来说,这两个关键字会改变当前控制流的执行路径,并终止当前迭代中的代码执行。
2. break 语句
break
语句有两种形式:无标签和有标签。
2.1. 无标签 break
无标签 break
可用于终止 for
、while
、do-while
循环以及 switch-case
代码块:
for (int i = 0; i < 5; i++) {
if (i == 3) {
break;
}
}
这个循环本应执行 5 次,但当计数器等于 3 时,if
条件触发 break
语句直接终止循环。控制流会立即跳转到循环后的下一条语句。
⚠️ 在嵌套循环中,无标签 break
只能终止它所在的最内层循环,外层循环不受影响:
for (int rowNum = 0; rowNum < 3; rowNum++) {
for (int colNum = 0; colNum < 4; colNum++) {
if (colNum == 3) {
break;
}
}
}
当 colNum
等于 3 时,内层循环被终止,但外层循环会继续执行剩余迭代。
2.2. 有标签 break
有标签 break
可以直接终止外层循环。执行后控制流会跳转到外层循环结束后的下一条语句:
compare:
for (int rowNum = 0; rowNum < 3; rowNum++) {
for (int colNum = 0; colNum < 4; colNum++) {
if (rowNum == 1 && colNum == 3) {
break compare;
}
}
}
我们在外层循环前添加了 compare
标签。当 rowNum=1
且 colNum=3
时,break compare
会直接终止整个外层循环,控制流跳转到外层循环后的代码。
3. continue 语句
continue
语句同样分为无标签和有标签两种形式。
3.1. 无标签 continue
无标签 continue
用于跳过当前迭代中剩余的代码,直接进入下一次循环迭代:
int counter = 0;
for (int rowNum = 0; rowNum < 3; rowNum++) {
for (int colNum = 0; colNum < 4; colNum++) {
if (colNum != 3) {
continue;
}
counter++;
}
}
当 colNum
不等于 3 时,continue
会跳过 counter++
操作。只有当 colNum=3
时才会执行计数器递增,外层循环不受影响继续执行。
3.2. 有标签 continue
有标签 continue
可以直接跳过外层循环的当前迭代,进入外层循环的下一次迭代:
int counter = 0;
compare:
for (int rowNum = 0; rowNum < 3; rowNum++) {
for (int colNum = 0; colNum < 4; colNum++) {
if (colNum == 3) {
counter++;
continue compare;
}
}
}
当 colNum=3
时,执行 counter++
后,continue compare
会直接跳转到外层循环的下一次迭代(即 rowNum++
),完全跳过当前外层迭代中剩余的内层循环。
4. 总结
本文通过实际案例展示了 Java 中 break
和 continue
关键字的核心用法:
✅ break
:彻底终止循环(无标签终止内层,有标签终止外层)
✅ continue
:跳过当前迭代剩余代码(无标签跳过内层,有标签跳过外层)
完整示例代码可在 GitHub 仓库 获取。掌握这两个关键字能帮你写出更简洁高效的控制流逻辑,尤其在处理复杂嵌套循环时特别实用。