有没有一种标准的方法来编写一个不需要更新语句的for循环?

bub*_*ing 1 c# loops for-loop

众所周知,大多数for循环都采用以下形式:

for (int i = 0; i < whatever; i++)
{
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

我正在编写一个方法,当时不适合在上面的格式中包含"i ++",因为我正在嵌套在这个循环中的循环中进行更新.所以现在,我有这个:

List<Item> itemList = new List<Item>();
PopulateListOfItems(itemList);

List<List<Item>> itemSubListList = new List<List<Item>>();

for (int i = 0; i < itemList.Count; //i doesn't need updating here)
{
    List<Item> subList = new List<Item>();

    for (int j = 0; j < subListSize && i < itemList.Count; j++)
    {   
        subList.Add(itemList[i++]);
    }

    itemSubListList.Add(subList;
}
Run Code Online (Sandbox Code Playgroud)

是否有标准的方法来编写这样的循环,可能包括某种虚拟代码,其中i ++通常会明确表示不需要更新?也许是......

for (int i = 0; i < whatever; true)
{
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

...或者我只是在漫长的一周结束时,我的大脑太油腻,以至于我真的应该只是使用while循环或什么?

顺便说一下,我用C#编写了这个,是的,但这适用于各种语言.

p.s*_*w.g 8

只需省略它:

for (int i = 0; i < whatever; )
{
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

实际上,for-loop的所有部分都是可选的(至少在C#中,对于所有类似C的语言,这可能不相同).以下内容创建了一个无限循环:

for (;;)
{
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

当然,您也可以使用while-loop 来完成此操作,正如其他答案所暗示的那样.这两种解决方案都是完全有效的,您选择哪种解决方案主要是风格问题.通常,您应该选择最清楚地向读者传达代码尝试执行的解决方案.

  • @icemanind正确.这是*as*无限的`while(true)//做东西`. (2认同)