do...while循环体至少执行一次,while可能一次都不执行;前者先执行后判断,后者先判断后执行;do...while结尾必须加分号,while不用。
核心就一点:while 是“先判断再执行”,do...while 是“先执行再判断”。这意味着 do...while 的循环体至少会跑一次,而 while 可能一次都不跑。
执行顺序不同
这是最根本的区别:
while:每次进入循环前,先检查条件是否为真;条件为假,直接跳过整个循环体
do...while:不管条件真假,先完整执行一遍循环体,再检查条件;条件为假时,只执行一次就退出
典型场景对比
看两个小例子就清楚了:
while 示例:
立即学习
“
PHP免费学习笔记(深入)
”;
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
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 后面是
,没分号
do...while 结尾必须带分号:
,漏了会报错
循环变量更新的位置不影响“至少执行一次”的特性,但影响后续是否继续循环
基本上就这些。不复杂但容易忽略。
while (条件)} while (条件);