写循环像做人:JavaScript 的 break 和 continue 教会我的事

0 阅读4分钟



大家好,我是 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岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货!