目标C for-loop break并继续

时间:2010-07-14 05:25:11

标签: iphone objective-c for-loop

如何在for循环中使用'break'语句继续形成指定的标签?

离;

outer: for(int i = 0;i<[arABFBmatches count];i++){
    for(int i = 0;i<[arABFBmatches count];i++){
        //
        break _____;
    }
}

如何打破外线?

5 个答案:

答案 0 :(得分:106)

很难从你的问题中说出来。我想解释一下,你想跳过内循环的其余迭代并继续外循环?

for (int i = 0; i < [arABFBmatches count]; i++) {
    for (int j = 0; j < [arABFBmatches count]; j++) {
        if (should_skip_rest)
            break; // let outer loop continue iterating
    }
}

请注意,我更改了内循环不变量的名称;在两者中使用i都会引发精神错乱。

如果你想从两个循环中断,我不会使用goto。我会这样做:

BOOL allDoneNow = NO;
for (int i = 0; i < [arABFBmatches count]; i++) {
    for (int j = 0; j < [arABFBmatches count]; j++) {
        if (should_skip_rest) {
            allDoneNow = YES;
            break;
        }
    }
    if (allDoneNow) break;
}

答案 1 :(得分:10)

大致是:

for(int i = 0;i<[arABFBmatches count];i++){
    for(int j = 0;j<[arABFBmatches count];j++){
        //
        goto outer_done;
    }
}
outer_done:

Objective-C没有标记中断。

答案 2 :(得分:2)

BOOL done = NO;
for(int i = 0;i<[arABFBmatches count] && !done; i++)
{
    for(int i = 0;i<[arABFBmatches count] && !done;i++)
    {
        if (termination condition) 
        {
             // cleanup
             done = YES;
        }
    }
}

答案 3 :(得分:2)

来自Apple的Objective-C文档:

  

Objective-C被定义为一小组但功能强大的扩展   标准的ANSI C语言。

因此,在C中允许的任何地方都可以使用break和continue。

continue 可用于循环结构(for,while和do / while循环)。

break 可用于那些相同的循环结构以及switch语句。

答案 4 :(得分:1)

'break'只会让你离开最里面的循环或开关。你可以随时使用'return'退出函数。请查看this链接。