1

我今天一直在检查一些 PHP 代码,我注意到 do-while 的用法与 break 而不是 if-else。它有什么优点?代码可读性?速度?还要别的吗?

4

3 回答 3

10

我假设你的意思是:

do {
    ...
    if ($foo == $bar) break;
    ...
} while (false);

这只是一种跳过一段代码的方法,而不涉及嵌套正常的 if 语句。break 语句用作 goto 语句,以转到 while 循环的末尾。整个部分被包裹在一个 do-while-false 循环中,以便它执行一次并允许使用 break 语句。

于 2011-02-28T20:41:57.730 回答
2

do/while 循环保证 do/while 的主体至少执行一次,然后检查循环条件。

另一方面,if保证如果条件失败,代码根本不会执行。

除了检查循环条件的点外,它们在内部没有区别。

于 2011-02-28T20:35:29.983 回答
0

if/else 更适合检查一个或多个逻辑条件,而无需循环或递归 -

do/while 更适合迭代数据或数据组,直到达到所需的结果。

如果您要使用 break 语句,这取决于您是否需要递归执行某个操作 - 否则 if/else 可能更适合。

于 2011-02-28T20:35:19.560 回答