如何在每个循环中转到下一个
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】:continue
和 break
转到最里面的控制循环。我在for
循环中使用了迭代器。因此,根据您的 ListOfItems 是什么(即 SortedList
或 Dictionary
...),您可能能够迭代而不是 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();
【讨论】:
以上是关于如何在每个循环中转到下一个的主要内容,如果未能解决你的问题,请参考以下文章