正在加载...

break 与 continue

循环可以每一轮都跑到结束——除非你来转向。有时答案已经有了,你想停住。有时某一项没用,你想跳过它再继续。break 立刻离开循环。continue 跳到下一轮。还是同一类循环;两个小词改变飞行路径。

break 做什么?

break 立刻结束最近一层循环。后面的轮次不再执行。脚本里循环之后的代码照常运行。可以想成:「做完了——出去。」常用于找到第一个匹配后不必再扫剩余项。

break 对比 continue

📊 中途给循环转向

关键字 作用 日常场景
break 立刻离开循环 已找到第一个匹配;不必再等
continue 跳过本轮剩余,开始下一轮 忽略一项坏数据;继续扫描
都不用 每一轮完整执行循环体 每一项都要同样处理
循环之后 循环下方的代码仍会执行 break 只离开循环,不是整个脚本

后面轮次没有用时选 break。某一轮该安静但扫描还要继续时选 continue。别对调——这种 bug 看起来「几乎对」,很难发现。

break 停止 for 循环

javascript
const nums = [2, 4, 7, 8];
let found = null;
for (let i = 0; i < nums.length; i++) {
if (nums[i] === 7) {
found = nums[i];
break;
}
}
console.log(found);

找到匹配就停

循环先看 2,再 4,再 7。到 7 时存下值并 break。8 不会执行。found 是 7。没有 break,知道答案后循环还会继续走。

continue 跳过一轮

javascript
for (let i = 1; i <= 5; i++) {
if (i % 2 === 0) {
continue;
}
console.log(i);
}

跳过一轮再继续

当 i 是偶数时,continue 跳到下一个 i。那些轮次里的 console.log 被跳过。你会看到 1、3、5。循环没有停——只是略过了偶数。

while 里的 break

javascript
let n = 1;
while (n < 20) {
if (n === 5) {
break;
}
console.log(n);
n = n + 1;
}

提前离开 while

while 本会在 n < 20 时一直走。到 n === 5 时 break 退出。打印了 1–4。适合「走到停止规则再离开」——不必跑完所有可能轮次。

for...of 配合 continue

javascript
const colors = ["red", "skip", "blue"];
for (const c of colors) {
if (c === "skip") {
continue;
}
console.log(c);
}

在 for...of 里跳过某些值

for...of 仍按值遍历。continue 忽略 "skip",再打印 red,然后 blue。转向思路在 for、while、for...of 里一样——只作用于最近一层循环。

跳过并拼接一行

javascript
const parts = ["A", "x", "B", "x", "C"];
let msg = "";
for (const p of parts) {
if (p === "x") {
continue;
}
msg = msg + p;
}
console.log(msg);

拼接时过滤

每个 "x" 被跳过;字母追加上去。结果是 ABC。还是前面循环课里的拼接习惯——continue 是遍历里的过滤门。

在页面上展示 break 与 continue

遍历短列表,用 continue 跳过一个标签,遇到标记后用 break 提前停,把结果写到页面。

带跳过与停止的页面遍历

html
<!DOCTYPE html>
<html>
<head>
<title>break / continue — page</title>
</head>
<body>
<p id="out">…</p>
<script>
const items = ["a", "skip", "b", "stop", "c"];
let line = "";
for (const item of items) {
if (item === "skip") {
continue;
}
if (item === "stop") {
break;
}
line = line + item + " ";
}
let box = document.getElementById("out");
box.textContent = "kept=" + line.trim();
</script>
</body>
</html>

页面显示 kept=a b。"skip" 被忽略;"stop" 在 "c" 之前结束了循环。改数组、刷新,读新行。下一课开始函数——用名字调用的可复用代码块。

自己试试

  1. 在 [3, 9, 1] 的 for 里,值是 9 时 break 并保存。
  2. 用 continue 跳过偶数,只打印 1 到 6 的奇数。
  3. 在 while 里计数器到 3 时用 break 停下。
  4. 对 ["ok", "no", "ok"] 用 for...of,对 "no" 使用 continue。
  5. 把 ["1", "-", "2"] 跳过 "-" 拼成 12。
  6. 在 HTML 演示里只改数组,刷新并读 kept=。

常见错误

  • 以为 continue 会退出整个循环(那是 break)
  • 在同一轮里把更多工作写在 break 后面——永远不会执行
  • 在 while 里未先更新计数器就 continue——有死循环风险
  • 其实只想跳过一项却用了 break
  • 以为 break 会离开整个脚本——它只离开最近一层循环

小结

  • break —— 立刻离开循环;后面轮次不跑
  • continue —— 跳过本轮剩余;开始下一轮
  • 适用于 for、while 和 for...of
  • 搜索常用 break;过滤常用 continue
  • break 之后循环下方的代码仍会执行
  • 下一课:函数——给一段工作命名并调用它

🧠 测试您的知识

准备开始

测试您的知识

通过这个互动测验挑战自己,看看你对这个主题的理解程度如何

❓
8
问题
🎯
70%
及格要求
♾️
∞
时间
🔄
∞
尝试次数

📝 说明

  • 仔细阅读每个问题
  • 为每个问题选择最佳答案
  • 您可以随时重新参加测验
  • 您的进度将显示在顶部