我有一个嵌套循环,在内部循环中我正在做一个条件检查,如果该条件检查得到满足,我想跳到外部循环的下一个迭代。
像这样
for( int i = 0 ; i < n ; i++ ){
for( int j = 0 ; j < n ; j++ ){
if( condition ){
// Move to next iteration of first or external loop
// skip the work and work2 both
}
// some work being done
work();
}
work2();
}
我的意思是如果条件满足 i = 2
和 j = 5
我想移至
i = 3
有什么方法可以不使用类似于break语句的 bool(boolean) 值?
最佳答案
除了注释中指出的要强制j
的值之外,您还可以使用lambda并将其内联调用。这有点丑陋,但可以做到:
for( int i = 0 ; i < n ; i++ ){
[&]() // OR [=]() OR [i, n]() depending on your usage
{
for( int j = 0 ; j < n ; j++ ){
if( condition ){
return;
}
// some work being done
work();
}
}();
}
关于c++ - 直接从嵌套循环内部移至外部循环的下一个迭代,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63893976/