使用 do--while 循环与使用简单的 while 循环之间有一个主要区别:那就是检查条件何时进行。
在 do--while 循环中,测试条件的评估在循环的末尾进行。这意味着循环内部的代码将在条件评估之前执行一次。这对于需要在进行测试以继续之前执行一次的任务来说是理想的,例如依赖于循环结果的测试。
相反,一个普通的 while 循环在循环开始之前,在循环块中进行任何执行之前,评估测试条件。如果出于某种原因你的测试条件在循环开始时就评估为假,那么你的循环内部的代码将不会被执行。
(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 is not big enough";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
echo "i is ok";
/* process i */
} while (0);
?>
可以使用 goto
运算符来代替此技巧。
使用 do--while 循环与使用简单的 while 循环之间有一个主要区别:那就是检查条件何时进行。
在 do--while 循环中,测试条件的评估在循环的末尾进行。这意味着循环内部的代码将在条件评估之前执行一次。这对于需要在进行测试以继续之前执行一次的任务来说是理想的,例如依赖于循环结果的测试。
相反,一个普通的 while 循环在循环开始之前,在循环块中进行任何执行之前,评估测试条件。如果出于某种原因你的测试条件在循环开始时就评估为假,那么你的循环内部的代码将不会被执行。