do...while循环体至少执行一次,while可能一次都不执行;前者先执行后判断,后者先判断后执行;do...while结尾必须加分号,while不用。

核心就一点:while 是“先判断再执行”,do...while 是“先执行再判断”。这意味着 do...while 的循环体至少会跑一次,而 while 可能一次都不跑。
执行顺序不同
这是最根本的区别:
- while:每次进入循环前,先检查条件是否为真;条件为假,直接跳过整个循环体
- do...while:不管条件真假,先完整执行一遍循环体,再检查条件;条件为假时,只执行一次就退出
典型场景对比
看两个小例子就清楚了:
while 示例:
立即学习“PHP免费学习笔记(深入)”;
$i = 10;
while ($i echo "当前值: $i
";
$i++;
}
// 输出:什么也不显示(因为 $i ?>
do...while 示例:
$i = 10;do {
echo "当前值: $i
";
$i++;
} while ($i // 输出:当前值: 10(只执行一次,之后检查条件发现不成立,退出)
?>
什么时候该用哪个?
选法很简单:
- 用 while:当你不确定条件是否满足,想安全跳过——比如读取用户输入前先检查是否为空
- 用 do...while:当你必须至少做一次操作——比如菜单交互、密码重试、初始化后校验等
写法细节注意
do...while 的分号不能少:
- while 后面是
while (条件),没分号 - do...while 结尾必须带分号:
} while (条件);,漏了会报错 - 循环变量更新的位置不影响“至少执行一次”的特性,但影响后续是否继续循环











