4

redoC#でのジョブを実行する同等の方法はありますか?つまり、ループの先頭に戻り、条件を確認したり、ループカウンターを増やしたりせずに、再実行します。ありがとう。

4

3 に答える 3

8
for (int i = 0; i < 100; i++)
{
    do
    {
        DoYourStuff();
    } while (ShouldWeDoThatAgain());
}

Do...while標準whileループに似ていますが、各反復の前に条件をチェックする代わりに、後にチェックする点が異なります。そうすれば、ループ内のコードは常に少なくとも1回は実行されます。forまたはforeachループ内にそれを貼り付けてください。そうすれば、希望する動作が得られるはずです。continueこれは、追加の変数を必要とせず、を使用せず、ループカウンターをまったく混乱させないため、Simonの回答よりも少し単純です。

于 2013-01-27T12:16:33.807 に答える
5

なぜ単純ではないのですか?

goto本当にみんなのお気に入りというわけではありませんが、この場合はかなり読みやすくなっています...

for(...)
{
redo:

   //...

   if (...)
      goto redo;




}
于 2013-10-16T09:40:42.727 に答える
3

いいえ。最も近いものは次のようなものです。

bool redoCalled = false:

for (int i = 0; i < 10; i++) {
    if (redoCalled) {
        i--;
        redoCalled = false;
    }

    // other stuff here

    if (redoWanted) {
        redoCalled = true;
        continue;
    }
}
于 2013-01-27T11:31:11.000 に答える