C#中Ruby"redo"的等价物

Jur*_*eri 4 .net c# ruby loops for-loop

是否有一种redo在C#中执行作业的等效方法?即返回循环的顶部并重新执行而不检查条件或增加循环计数器.谢谢.

Chi*_*ura 8

for (int i = 0; i < 100; i++)
{
    do
    {
        DoYourStuff();
    } while (ShouldWeDoThatAgain());
}
Run Code Online (Sandbox Code Playgroud)

Do...while就像一个标准while循环,除了不是在每次迭代之前检查它的条件,它检查之后.这样,循环内的代码将始终至少执行一次.坚持在一个forforeach循环内,这应该得到你想要的行为.这比Simon的答案简单一点,因为它不需要额外的变量,不使用continue,也不会干扰循环计数器.


Onu*_*nur 5

为什么不简单:

虽然goto并不是每个人都喜欢的,但在这种情况下它很可读......

for(...)
{
redo:

   //...

   if (...)
      goto redo;




}
Run Code Online (Sandbox Code Playgroud)