ios打破嵌套循环

Jac*_*nkr 12 objective-c

如果我有while一个循环for回路的中while环,哪能break两个环?

我这样做是因为在我找到我想要的东西之后,在没有完成这些循环后得到的额外250毫秒在一段时间后就会变得有价值.

伪代码:

while(alwaysTrue) {
    for(NSArray *arr in twoThousandItems) {
        if(IFoundWhatIWasLookingFor) {
            // assign some stuff here
            // break everything, not just the for loop.
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Jos*_*erg 28

这是goto你的朋友.是的,那goto.

while(alwaysTrue) {
    for(NSArray *arr in twoThousandItems) {
        if(IFoundWhatIWasLookingFor) {
            // assign some stuff here
            // break everything, not just the for loop.
            goto BAIL;
        }
    }
}
BAIL:
NSLog(@"Freedom!");
Run Code Online (Sandbox Code Playgroud)

另一种选择是在循环中出现短路.

while(alwaysTrue && !found) {
    for(NSArray *arr in twoThousandItems) {
        if(IFoundWhatIWasLookingFor) {
            // assign some stuff here
            // break everything, not just the for loop.
            found = YES;
            break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这是没人的朋友,'goto`是邪恶的.+1 (16认同)
  • 在阅读了'goto`后,似乎**过度使用**是邪恶的.虽然我是*@ bshirley*提到的使用返回函数的更大粉丝,但是`goto`将适用于******情况.谢谢和+1 (4认同)