do while 循环先执行循环体再判断条件,确保至少运行一次;语法为 do { ... } while (condition);,末尾分号不可省略;常用于用户输入验证、菜单选择等需初始化后判断的场景。

do while 循环在 JavaScript 中的核心特点是:先执行一次循环体,再判断条件是否成立。因此它天然保证代码块至少运行一次,适合那些“先干活、再决定要不要继续”的场景。
基本语法结构
和 while 循环不同,do while 把条件判断放在末尾,用 do { ... } while (condition); 的形式书写:
注意分号不能省略 —— 这是 do while 语句结束的标志,漏掉会导致语法错误。
- 先执行大括号内的语句(无论条件真假)
- 执行完后检查 while 后面的布尔表达式
- 如果为 true,再次执行循环体;为 false,则退出循环
典型使用场景举例
最常见的是需要用户输入验证、菜单选择、或初始化后才判断是否继续的操作:
- 让用户输入一个 1–100 的数字,输错就重试,但至少提示一次
- 模拟掷骰子,至少掷一次,再看是否满足“重掷条件”
- 读取配置项时,先尝试获取默认值,再检查是否需覆盖
例如,要求用户输入正整数:
let num;
do {
num = prompt("请输入一个正整数:");
} while (num === null || num === "" || isNaN(num) || Number(num)
<p>即使用户第一次点取消(返回 null),循环也已执行过一次 prompt,之后才判断条件并决定是否重复。</p>
<h3>与 while 循环的关键区别</h3>
<p>while 是“先判后做”,条件不满足时一次都不执行;do while 是“先做后判”,哪怕条件一开始就是 false,也会执行一遍:</p>
- while (false) { console.log("A"); } → 完全不输出
- do { console.log("B"); } while (false); → 输出一次 "B"
这个差异决定了:当你需要无条件触发初始动作(比如首次渲染、首条日志、首次连接尝试),do while 更直接可靠。
实用注意事项
实际写的时候容易忽略几个细节:
- 循环变量必须在循环体内更新,否则可能陷入死循环(尤其条件依赖外部变量时)
- 避免在 while 条件中调用有副作用的函数(如 Math.random()),除非你明确希望每次判断都重新计算
- 若逻辑较复杂,可把条件提取成独立函数,提升可读性,例如:while (!isValidInput())
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











