我有一个嵌套循环,在内部循环中我正在做一个条件检查,如果该条件检查得到满足,我想跳到外部循环的下一个迭代。
像这样

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/

10-12 13:30