大家好,我是 31 岁、依旧热爱折腾代码的小米。
今天这篇文章,我们不从规范、不从定义、不从“这是一个用于跳出循环的语句”这种教科书开场。
我想先请你跟我一起,走进一家——自助火锅店。
故事开场:自助火锅,就是一段循环
那天周末,我加完班,拖着疲惫的身体走进一家自助火锅店。老板在门口拍着胸脯说:“只要你还能吃,就一直吃!”
我一听,这不就是一个while 循环吗?
在 JavaScript 里,循环就是这么回事:只要条件成立,代码就一遍一遍地执行。
但问题来了。现实世界里,没有人会真的一直吃下去。代码世界也一样。于是,break 和 continue 登场了。
break:老板,我不吃了,直接结账走人
先说 break。
1、break 是什么感觉?
吃到一半,我突然发现锅底糊了。
这时候我有两种选择:
- 忍着继续吃(程序员不会)
- 直接起身走人
我选择了后者。这就是 break。break 的含义只有一句话:“当前循环,我不玩了,直接退出。”
2、break 在代码里的真实样子
来看一个最基础的例子:
输出结果是:
注意重点:
- i === 5 时
- break 一执行
- 整个 for 循环立刻终止
- 后面的 i = 6 ~ 10永远不会执行
这不是“跳过一次”,而是 “直接散伙” 。
continue:这盘我不吃了,但下一盘还要
接下来是 continue。
1、continue 更像什么?
火锅吃到一半,我夹到一片香菜。我沉默了 0.5 秒,然后做出一个成熟程序员的选择: “这盘我不吃,下一盘继续。”
这,就是 continue。continue 的核心语义:“本轮循环我不执行了,直接进入下一轮。”
不是退出循环,只是跳过当前这一次。
2、continue 在代码里的感觉
输出结果:
你会发现:
- 第 3 盘没有执行“开心地吃”
- 但 循环没有结束
- 后面的 4、5 继续正常进行
break vs continue:一个是“散伙”,一个是“跳过”
很多初学者第一次学这俩,脑子里是混乱的。我们直接用一句话总结:break:我不玩了,游戏结束continue:这把不算,下一把继续。
如果你只记这一句,基本就不会用错。
在 while 循环里,它们更像“紧急按钮”
我们再把故事拉回火锅店。老板说:“想吃多久吃多久。”
于是我写了一个 while:
执行过程是:
- 钱还有 → 吃
- 钱减少 → 再吃
- 发现异常 → break 直接走
如果没有 break,这个循环只能靠 money <= 0 才能结束。所以在实际项目中:
- while + break
- 经常用来做兜底退出机制
continue 的真实业务场景:过滤脏数据
再来一个更贴近业务的例子。假设我从后端拿到一堆用户数据:
我们要做的事是:只处理正常的用户对象
这时候 continue 就非常优雅:
输出:
如果没有 continue,你就只能写一堆 if-else,代码会明显变得臃肿、难读。
break + continue = 程序员的“情绪管理”
说句掏心窝子的。break 和 continue,真的特别像程序员的情绪管理能力。
- break:“这事不对,及时止损。”
- continue:“这一步不重要,别纠结,往前走。”
成熟的程序员,不是代码写得多复杂,而是知道什么时候该停,什么时候该跳过。
一个稍微进阶的例子:找第一个合格的人
比如:找到第一个年龄 ≥ 30 的用户
这里:
- continue 用来过滤不符合条件的人
- break 用来找到目标后立刻停止
这就是组合技,也是你在真实项目中最常见的写法之一。
新手最容易踩的坑
1、误以为 continue 会结束循环
错。只是结束当前这一轮,不是结束整个循环。
2、在 break 后写代码
这就像你已经出门了,还想坐回火锅桌继续吃。
总结
如果你问我:“break 和 continue 值得单独写一篇吗?”
我会说:非常值得。
因为它们决定了:
- 你的循环是否优雅
- 你的代码是否清晰
- 你是不是一个“会及时止损的程序员”
下次你在写循环的时候,不妨多问自己一句: “这一刻,是 break,还是 continue?”
END
如果你觉得这篇文章有点意思,欢迎点赞、转发、在看,我们下篇故事再见~
我是小米,一个喜欢分享技术的31岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货!