2

私は Do While を使用する利点を探しています。ほとんどのブログやチュートリアルでは、要件に依存すると述べていますが、それがなければ Do While から得られる利点はありませんか?

<?php
$i = 0;
do {
     echo $i;
} while ($i > 0);
?>
4

6 に答える 6

6

それは面白い。今日は do while ループが必要な日でした。こんな感じでした。数値を生成したかったのですが、テストに合格する必要がありました。

while ループを使用すると、次のようになります。

$num = generateRandomNumber();
while (!numberMeetsRequirements($num)) {
    $num = generateRandomNumber();
}

ご覧のとおり、ループの内側と外側に 1 回、1 つの行が繰り返されます。この特定の例では、do-while ループを使用してこれを回避できます。

do {
    $num = generateRandomNumber();
} while (!numberMeetsRequirements($num));

しかし、他の人がすでに言ったように、それは本当にあなたが何をしているかに依存します. 上記のコードは単なる例です。

于 2013-08-16T12:04:10.287 に答える
3

利点はありません。whileは事前条件付きループであり、do..while事後条件付きループです。つまりwhile、繰り返しの前に条件がチェックされ、繰り返しのdo..while後に条件がチェックされます。

したがって、do..whileループ内の本体は少なくとも 1 回実行されます。そのため、繰り返しがゼロの可能性がある何か (たとえば、データベースからの選択の行数) を反復している場合は使用できません。

構造化プログラムの定理により、どのプログラムも と のみで記述できることifに注意してくださいwhile。したがって、一般的には、do..whileステートメントの必要はありません。いつでも に置き換えることができますwhile

于 2013-08-16T11:35:22.520 に答える
0

条件は最初の実行後にのみチェックされるため、Do While は常に 1 回実行されます。

While Do は、最初にチェックされるため、条件が一致する場合にのみ実行されます

于 2013-08-16T11:34:50.887 に答える
0

主なことは、ループ内のステートメントが少なくとも 1 回実行されることです。他のほとんどの構成では実行されることはありません。

于 2013-08-16T11:35:01.160 に答える
0

do { >>command<< } while ()<-- コマンドは少なくとも 1 回実行されます

while () { >>command<< } <-- コマンドは while 条件が true の場合にのみ実行されます

于 2013-08-16T11:35:01.383 に答える
0

forwhileおよびdo-whileループを交換可能に使用して、任意のアルゴリズムを実装できます。ただし、ロジックの流れに従うと、一方のループを他方のループよりも優先して使用する方向に進む可能性があります。

do-while ループを使用する方が (ロジックの流れに基づいて) より適切な場合の代表的な例は、バブル ソートの実装です。アルゴリズムの説明はここにあります。つまり、配列を少なくとも 1 回反復処理する必要があることがわかります (バブル ソートの最適なケースは ですO(n)。ここnで、 は配列の長さです)。実装は次のとおりです。

$arr = array( 10, 5, 6, 1, 3, 2, 7, 8, 9, 4 );
$arr_len = 10;
$swapped;

do {
  $swapped = false;

  for ( $i = 0; i < ( $arr_len - 1 ); $i++ ) {
    if ( $arr[ i ] > $arr[ i + 1 ] ) {
      $temp = $arr[ i ];

      $arr[ i ] = $arr[ i + 1];
      $arr[ i + 1 ] = $temp;

      $swapped = true;
    }
  }
} while ( $swapped == true );

私の PHP は非常にさびています。構文エラーがある場合はお知らせください。

于 2013-08-16T11:53:25.663 に答える