如何在每个循环中转到下一个

Posted

技术标签:

【中文标题】如何在每个循环中转到下一个【英文标题】:How to go to next within for each loop 【发布时间】:2018-04-04 19:31:39 【问题描述】:

我最近需要修改某人的代码,该代码在 for each 中使用了多个 continue 案例。添加的是for each 内部的新控制循环,它立即破坏了continue 逻辑。有没有一种好方法可以在这样的循环中获取下一个列表项,而无需重写所有的 continue 案例?

// Additional control loops within the member function which cannot be 
// turned into functions due to native C++ data types.

    for each(KeyValuePair<String^,String^> kvp in ListOfItems) 
        do  // new condition testing code
           // a bunch of code that includes several chances to continue
         while (!reachedCondition)
    

【问题讨论】:

Can I use break to exit multiple nested for loops?的可能重复 如果 C++/CLI 确实 支持命名循环,这会使问题变得微不足道。只需命名循环即可。 【参考方案1】:

continuebreak 转到最里面的控制循环。我在for 循环中使用了迭代器。因此,根据您的 ListOfItems 是什么(即 SortedListDictionary ...),您可能能够迭代而不是 continue

int i=0;
Dictionary^ d = gcnew Dictionary<string, string>();

for (IEnumerator<KeyValuePair<string, string>>^ e =  d->GetEnumerator();i< d->Count;i++) 
    // do stuff
    e->MoveNext();

【讨论】:

以上是关于如何在每个循环中转到下一个的主要内容,如果未能解决你的问题,请参考以下文章

如何在Matlab的for循环中移动到下一个迭代

如何在循环中回滚到下一次迭代?

for循环中的错误1004如何转到下一个函数[重复]

如何在 maven pom 属性值中转义“&”[重复]

如何构建一个从输出到下一个输入的大额外循环的 RNN 模型?

如何在 MySQL 中转义单引号