break 与 continue
跳过并退出迭代
break 与 continue 是 CoddyKit 上的免费 Java Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Java Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Java Academy 课程共包含 4 节课。
为什么要控制循环
循环会重复执行代码,但有时您需要提前停止,或者跳过某一项。
Java 为此提供了两个简单工具:中断会完全结束循环,而继续会跳到下一轮。
本课将帮助您准确了解每个工具何时生效,以及它们如何改变循环的流程。
中断语句
中断关键字会立即停止最近的循环。
执行会跳到循环之后的第一行,剩余的迭代都会被放弃。
下面的循环会在 i 达到 3 时立即停止。
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
break;
}
System.out.println("i = " + i);
}
System.out.println("Done");
}
}中断打印的内容
程序打印了 i = 1 和 i = 2,然后打印了 完成。
当 i 变为 3 时中断生效,因此 3、4 和 5 从未被打印。
当您已经找到所需内容并想停止搜索时,中断非常适合。
继续语句
继续关键字会跳过当前迭代的剩余部分。
循环不会停止,而是跳回循环头并尝试下一个值。
这里跳过数字 3,但继续执行。
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue;
}
System.out.println("i = " + i);
}
}
}继续打印的内容
输出结果为 1、2、4、5。值 3 被跳过了,但循环仍在继续运行。
这就是关键区别:中断会离开循环,而继续只会跳过一轮。
跳过偶数
继续的常见用途是筛选。我们跳过不关心的值。
这个循环在遇到偶数时继续执行,因此只打印奇数。
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 8; i++) {
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
}
}while 循环中的中断
中断和继续适用于每一种循环类型:计数循环、条件循环和先执行后判断循环。
这个条件循环会递增计数,但总数超过 10 的瞬间就会跳出。
public class Main {
public static void main(String[] args) {
int total = 0;
int n = 1;
while (true) {
total += n;
if (total > 10) {
break;
}
n++;
}
System.out.println("Stopped at total = " + total);
}
}中断只退出一个循环
一条重要规则是:普通的中断只会退出包围它的最内层循环。
如果一个循环嵌套在另一个循环中,中断会离开内层循环,而外层循环会继续运行。
请仔细观察这个嵌套示例。
public class Main {
public static void main(String[] args) {
for (int row = 1; row <= 3; row++) {
for (int col = 1; col <= 3; col++) {
if (col == 2) {
break;
}
System.out.println("row " + row + ", col " + col);
}
}
}
}嵌套中断的结果
中断只停止了内层的列循环,因此每一行只打印了第 1 列。
外层的行循环仍然继续执行了全部三行。
如果要一次退出两个循环,您需要使用带标签的中断,这将在下一课介绍。
继续也只影响最近的循环
与中断一样,普通的继续只会影响直接包围它的循环。
在嵌套循环中,继续会跳到内层循环的下一次迭代,而不是外层循环的下一次迭代。
当您的逻辑跨越两个循环时,请牢记这一点。
public class Main {
public static void main(String[] args) {
for (int a = 1; a <= 2; a++) {
for (int b = 1; b <= 3; b++) {
if (b == 2) {
continue;
}
System.out.println(a + "-" + b);
}
}
}
}快速建立心智模型
把循环想象成一条供您反复奔跑的跑道。
中断 = 离开跑道并走开。继续 = 跳到下一圈的起跑线。
两者都只作用于您当前所在的跑道,绝不会作用于外层跑道。
快速检查
测试您对中断和继续区别的理解。
回顾
您了解到中断会退出最近的循环,而继续会跳到该循环的下一次迭代。
在嵌套循环中,两者都只影响最内层循环。要控制外层循环,您需要使用标签,下一步将对此进行探索。
常见问题解答
「break 与 continue」课时是免费的吗?
是的 — 「break 与 continue」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Java Academy 课程的其余内容,请升级到 CoddyKit PRO。 Java Academy 课程共包含 4 节课。
「break 与 continue」这节课中我会学到什么?
跳过并退出迭代 你通过在浏览器中直接运行的动手代码来练习 Java Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Java Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Java Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「break 与 continue」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Java Academy 课中编写并运行代码吗?
能。每节 Java Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- break 与 continue
- 带标签的 break
- 带标签的 continue
- 避免意大利面式流程