假设你有两个这样的嵌套 for 循环:
int i, j; // Iterators
for(i=0; i<100; ++i) {
/* do some stuff */
...
for(j=0; j<99; ++j) {
/* do more stuff */
...
if( someFunction(j,i) == 2 ) {
/* break out of both loops */
}
}
}
有没有一种方法(类似于只在一个循环中执行 break;
命令)当场结束两个循环?
最佳答案
您可以使用 goto
作为:
int i, j; // Iterators
for(i=0; i<100; ++i) {
/* do some stuff */
...
for(j=0; j<99; ++j) {
/* do more stuff */
...
if( someFunction(j,i) == 2 ) {
goto done;
}
}
}
done:
或者使用另一个变量来控制循环迭代:
int i, j; // Iterators
int done = 0;
for(i=0; i<100 && !done; ++i) {
/* do some stuff */
...
for(j=0; j<99 && !done; ++j) {
/* do more stuff */
...
if( someFunction(j,i) == 2 ) {
done = 1;
}
}
}
关于c - 有没有办法打破 C 中的上级循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8037525/