do-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 运算符来代替此技巧。

添加说明

用户贡献说明 1 条说明

33
jayreardon at gmail dot com
17 年前
使用 do--while 循环与使用简单的 while 循环之间有一个主要区别:那就是检查条件何时进行。

在 do--while 循环中,测试条件的评估在循环的末尾进行。这意味着循环内部的代码将在条件评估之前执行一次。这对于需要在进行测试以继续之前执行一次的任务来说是理想的,例如依赖于循环结果的测试。

相反,一个普通的 while 循环在循环开始之前,在循环块中进行任何执行之前,评估测试条件。如果出于某种原因你的测试条件在循环开始时就评估为假,那么你的循环内部的代码将不会被执行。
To Top