PHP Conference Japan 2024

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 不够大";
break;
}
$i *= $factor;
if (
$i < $minimum_limit) {
break;
}
echo
"i 可以";

/* 处理 i */

} while (0);
?>

可以使用 goto 运算符来代替此技巧。

添加注释

用户贡献的注释 1 条注释

jayreardon at gmail dot com
17 年前
使用 do--while 循环与使用简单的 while 循环时,您应该注意一个主要区别:那就是检查条件的时间。

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

相反,普通的 while 循环会在循环开始之前评估测试条件,然后才会执行循环块中的任何代码。如果由于某种原因,您的测试条件在循环开始时就评估为 false,则循环内的任何代码都不会执行。
To Top