使用 do--while 循环与使用简单的 while 循环时,您应该注意一个主要区别:那就是检查条件的时间。
在 do--while 循环中,测试条件的评估在循环的末尾进行。这意味着在评估条件之前,循环内的代码将迭代一次。这对于需要在进行测试以继续之前执行一次的任务非常理想,例如依赖于循环结果的测试。
相反,普通的 while 循环会在循环开始之前评估测试条件,然后才会执行循环块中的任何代码。如果由于某种原因,您的测试条件在循环开始时就评估为 false,则循环内的任何代码都不会执行。
(PHP 4, PHP 5, PHP 7, PHP 8)
do-while
循环与while
循环非常相似,区别在于真值表达式是在每次迭代的末尾检查,而不是在开头。与普通的while
循环的主要区别在于,do-while
循环的第一次迭代保证运行(真值表达式仅在迭代结束时检查),而普通的while
循环则不一定运行(真值表达式在每次迭代的开头检查,如果它从一开始就计算为false
,循环执行将立即结束)。
do-while
循环只有一种语法
<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>
上面的循环将只运行一次,因为在第一次迭代之后,当检查真值表达式时,它计算为false
($i不大于0),循环执行结束。
高级 C 用户可能熟悉 do-while
循环的不同用法,通过用 do-while
(0) 封装它们并使用 break
语句来允许在代码块中间停止执行。下面的代码片段演示了这一点
<?php
do {
if ($i < 5) {
echo "i 不够大";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
echo "i 可以";
/* 处理 i */
} while (0);
?>
可以使用 goto
运算符来代替此技巧。
使用 do--while 循环与使用简单的 while 循环时,您应该注意一个主要区别:那就是检查条件的时间。
在 do--while 循环中,测试条件的评估在循环的末尾进行。这意味着在评估条件之前,循环内的代码将迭代一次。这对于需要在进行测试以继续之前执行一次的任务非常理想,例如依赖于循环结果的测试。
相反,普通的 while 循环会在循环开始之前评估测试条件,然后才会执行循环块中的任何代码。如果由于某种原因,您的测试条件在循环开始时就评估为 false,则循环内的任何代码都不会执行。