c - 有没有办法打破 C 中的上级循环?

标签 c loops

假设你有两个这样的嵌套 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/

相关文章:

Mysql C连接器---源在哪里?

我们可以将权限从用户更改为 root 吗?

可以分解 md5 以跨多个内核/线程运行吗?

javascript - JS Loop 循环并导致浏览器崩溃?

for循环中的Python变量赋值

继续n次迭代

objective-c - Cocoa/Objective-C - 如何单步遍历数组?

c - 查找二维数组单元内存位置

c - fork()后谁先执行 : parent or the child?

java - 如何在Java中通过递增循环获取数字递增的变量(以获取所述变量的值)?