do-while循环保证循环体至少执行一次,因其先执行循环体后判断条件;语法为do{循环体}while(条件);,末尾分号不可省略,适用于需“先执行、再判断”的场景。

do-while 循环天生就保证至少执行一次,因为它把条件判断放在循环体执行之后,而不是之前。
执行顺序决定“必走一趟”
它严格按两步走:
- 第一步:无条件运行大括号里的全部代码(即循环体)
- 第二步:再计算 while 后面的条件表达式
- 如果条件为 true,回到第一步继续;为 false,就直接退出
这意味着,哪怕条件从一开始就是 false,循环体也已经跑完一遍了。
和 while 循环对比最直观
看这两个例子:
- while(false) { console.log("A"); } —— 什么也不输出
- do { console.log("B"); } while(false); —— 一定会输出 "B"
区别就在“先判后跑”还是“先跑后判”。do-while 的设计目标就是解决“必须做一次”的需求。
典型场景离不开这个特性
只要逻辑上要求“先给个机会,再看要不要重来”,就适合用 do-while:
- 让用户输入数字,输错就重输,但提示框至少弹一次
- 游戏里生成随机数并让用户猜,第一轮不用验证“是否已开始”
- 尝试连接服务器,失败就重试,但首次请求不能跳过
这些情况若用 while,就得额外写一次初始化代码,反而增加出错可能。
注意语法细节避免报错
do-while 末尾的分号不能漏(虽然 ES6+ 允许省略,但保留更稳妥):
- ✅ 正确:
do { ... } while (condition); - ❌ 错误:
do { ... } while (condition)(缺分号,某些环境会报错)
另外,循环体内一定要有能影响条件变量的操作,否则容易陷入死循环。











