while先判断后执行,可能0次;do...while先执行后判断,至少1次;前者条件为假时循环体不执行,后者必执行一次;do...while末尾分号不可省,while后不可加。

while 先判断条件,再执行循环体;do...while 先执行一次循环体,再判断条件。
while:条件为真才进入循环
每次执行前都检查条件表达式。如果第一次判断就不满足(即为 false),循环体**一次都不会执行**。
典型写法:
let i = 0;
while (i > 5) {
console.log(i);
i++;
}
// 输出:无任何输出,因为 i > 5 初始为 false
do...while:至少执行一次循环体
不管条件是否成立,都会先执行一遍循环体,然后在末尾检查条件。只有条件为 true 时,才继续下一轮。
立即学习“Java免费学习笔记(深入)”;
典型写法:
let j = 0;
do {
console.log(j);
j++;
} while (j > 5);
// 输出:0(只执行一次,因为 j > 5 初始为 false,循环结束)
关键差异总结
- 执行时机不同:while 是“先判后做”,do...while 是“先做后判”
- 最少执行次数不同:while 可能 0 次,do...while 至少 1 次
- 适用场景不同:需要确保至少处理一次(如用户输入校验、菜单选择)优先考虑 do...while;条件明确依赖初始状态时常用 while
容易忽略的语法细节
do...while 的分号不能省略 —— 它是语句结束符,不是可选的:
do {
// ...
} while (condition); // 这里的分号必须存在
而 while 后面不加分号(否则会形成空语句,导致逻辑错误):
while (condition); // ❌ 错误:分号让循环体变为空,可能死循环
{
// 实际上不会被循环执行
}










