1

条件が満たされるまで値を移動する必要があるため、for ループと while ループについて質問があります。どちらが低レベルでより効率的か、そしてその理由は?

つまり、次の 2 つのコードは同じ結果になります。

為に:

for (int i = 0; i<10 ; i++)
{
    if (i==4)
    {
        return;
    }
}

その間:

int i=0;
while (i<10 and i!=4)
{
    i++;
}

これは考えられるループの小さな例であり、数千のレコードを見ることができます。

より効果的なコードは何ですか?この場合はしばらく使わないといけないといつも言っていますが、低レベルはまだ良い間なのか、それとももっと良いのか疑問に思っています。

どうもありがとうございました。

4

3 に答える 3

4

答えは:それは問題ではありません。

違いを確認するためにコードを作成するのに本当に苦労しない限り、どちらのパフォーマンスにも違いは見られません。本当に重要なのはコードの読みやすさです (そして、これは将来的に時間とお金を節約できる場所です)。 )なので、わかりやすい方を使ってください。

あなたの場合、私はWhileアプローチを提案します...


また、Eric Lippert によるこの記事を読むことをお勧めします: How Bad Is Good Enough? 、読みやすさとばかげた最適化に満足していない場合に備えて:)

于 2013-11-09T01:28:57.887 に答える
2

それらは非常に似たようにコンパイルされるはずです。低レベルでは、ループ内でコマンドを実行することを検討しています。次に、条件がループを終了することを要求する場合、値を比較して次のコード ブロックにジャンプする 2 つの呼び出しがあります。

前述のように、 while は読みやすさにつながるため、より適切な選択です。

于 2013-11-09T01:37:07.377 に答える
1

forとはどちらもwhile同じです。

唯一の違いは、条件を配置する場所です。内部的に、while ループは低レベルで「for」構文を使用します。

あなたのシナリオでは。最良の選択肢です ** if you don't know the upper limit**

あなたが使用することができます

While(i!=4)
{
 i++
}

上限がわかっている場合は for ループを使用し、そうでない場合whileは親友です。

于 2013-11-23T06:40:28.263 に答える