1. 概述

本文将深入讲解 Java 中的 continuebreak 关键字,重点展示它们在实际开发中的使用场景。

简单来说,这两个关键字会改变当前控制流的执行路径,并终止当前迭代中的代码执行。

2. break 语句

break 语句有两种形式:无标签和有标签。

break 语句流程图

2.1. 无标签 break

无标签 break 可用于终止 forwhiledo-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=1colNum=3 时,break compare 会直接终止整个外层循环,控制流跳转到外层循环后的代码。

3. continue 语句

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 中 breakcontinue 关键字的核心用法:

break:彻底终止循环(无标签终止内层,有标签终止外层) ✅ continue:跳过当前迭代剩余代码(无标签跳过内层,有标签跳过外层)

完整示例代码可在 GitHub 仓库 获取。掌握这两个关键字能帮你写出更简洁高效的控制流逻辑,尤其在处理复杂嵌套循环时特别实用。


原始标题:The Java continue and break Keywords