0

たとえば、次のようなものがあるとします。以下の間にパフォーマンスの違い、使用方法の違いはありますか、それとも単なる個人的な好みですか?

for($i=0; $i<10; $i++){
    echo $i;
}

$i = 0; 
while($i < 10){
    echo $i;
    $i++;
}
4

2 に答える 2

1

いいえ。 for ループは while ループとして記述できます (逆も同様です)。同様に、各再帰関数はループとして記述でき(多くの作業が必要になる場合もありますが、実行できます)、その逆も可能です。

パフォーマンスについて: ベンチマークは行っていませんが、両方のループでまったく同じ変数が同時に宣言され、同じ命令が同時に実行され、同じ比較が同時に実行されます。ループが完了すると、同じ変数 (この$i例では) が同じ値で存在します。パフォーマンスの違いがどこから来るのかわかりません。(C++ などの他の言語では、for ループの初期化部分で宣言された変数は、ループの後に存在しなくなることに注意してください。)

どのループを使用するかは、主に個人的な好みの問題です。反復回数がわかっている場合は、 for ループを使用するのが好きです(例のように、10回の反復)。サイズがわからないデータベースの結果セットを反復するときのように、何らかの条件 (プログラムを作成するときに予測できない) が満たされるまでループを継続する必要がある場合は、通常、while ループを使用します。

于 2013-08-18T14:43:09.050 に答える
0

唯一の違いは、変数のスコープです (プログラミング言語によって異なります)。

たとえば、$i のスコープを for ループ内に限定したい場合、これを実現できます。

これは while ループと同じようにはできませんが、それ以外は同じです。

一方は、もう一方よりもわずかなパフォーマンス上の利点しか得られない場合がありますが、これはコンパイラに固有のものです。ただし、コードの優先順位が毎回優先されるほど小さいでしょう。

于 2013-08-18T14:50:04.123 に答える