1

私は今日いくつかのPHPコードを調べていて、if-elseの代わりにブレークを使用したdo-whileの使用法に気づきました。それの利点は何ですか?コードの読みやすさ?スピード?他に何か?

4

3 に答える 3

10

私はあなたがこれを意味すると思います:

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

これは、ステートメントに含まれる場合に通常のネストを行わずに、コードの一部をスキップする方法にすぎません。breakステートメントは、whileループの最後に移動するためのgotoステートメントとして使用されます。ピース全体がdo-while-falseループにラップされているため、1回実行され、breakステートメントが許可されます。

于 2011-02-28T20:41:57.730 に答える
2

do / whileループは、do / whileの本体が少なくとも1回実行されることを保証し、その後、ループ条件がチェックされます。

反対にif、条件が失敗した場合にコードがまったく実行されないことを保証します。

内部的には、ループの条件がチェックされるポイントを除いて、それらに違いはありません。

于 2011-02-28T20:35:29.983 に答える
0

if / elseは、ループや再帰を必要とせずに1つ以上の論理条件をチェックするのに適しています-

do / whileは、目的の結果が得られるまでデータまたはデータのグループを反復処理するのに適しています。

breakステートメントを使用する場合は、アクションを再帰的に実行する必要があるかどうかによって異なります。そうでない場合は、if/elseの方が適している可能性があります。

于 2011-02-28T20:35:19.560 に答える