break 和 continue 是循环里的两个"急刹车"——break 整个跳出循环,continue 跳过本次继续下一轮。
核心区别:
① break——立即跳出整个循环,不再继续
② continue——跳过当前这一轮,继续下一次循环
坑:break 只能跳出一层循环、continue 只影响当前这轮、嵌套循环用 label 才能跳出外层。
循环跑到一半想提前叫停,用 break。它一出现,整个循环立刻结束,后面的圈都不跑了。
// 跑 1~20,一到 10 就 break
for (let i = 1; i <= 20; i++) {
// 碰到 10,整个循环到此结束
if (i === 10) break;
// 只打印 1~9,10 及以后全没了
console.log(i);
}
continue 没那么狠:只是跳过"这一圈"剩下的代码,直接进入下一圈,循环本身还在继续。
// 跑 1~20,碰到 10 就 continue
for (let i = 1; i <= 20; i++) {
// 跳过这圈,直接进下一圈
if (i === 10) continue;
// 打印 1~9、11~20,唯独没有 10
console.log(i);
}
| 关键字 | 跑步类比 | 结果 |
|---|---|---|
| break | 直接停下来不跑了 | 整个循环结束 |
| continue | 这圈歇一下,接着跑下一圈 | 只跳过本次,循环继续 |
如果你写循环时忘了写 i++(变量更新),条件就永远成立,循环停不下来,浏览器直接卡死——这叫死循环。写循环前先确认三件事都在。作业让你"删掉 i++ 观察死循环",就是为了体会这个痛。
① 可能在什么地方用:找到目标就停止遍历;跳过无效数据继续下一条。
② 常见的问题:该用 continue 却写成 break,整个循环提前结束了;或者放错位置。
③ 解决思路:先想清楚:只想'跳过这一次'用 continue,想'彻底不干了'才用 break。
| API | 作用 | 参数 | 返回值 | 代码示例 |
|---|---|---|---|---|
| arr.push | 把数塞进数组末尾 | 要放的值 | 数组新长度 | let arr = []; |
| break | 整个循环立刻结束 | — | — | for (let i = 1; i <= 5; i++) { |
| continue | 只跳过这圈,下一圈照跑 | — | — | for (let i = 1; i <= 5; i++) { |