一旦你得到你想要的东西,你将如何停止快速枚举。
在for循环中,我知道你只需将计数器数设置为千元左右。 例如:
for (int i=0;i<10;i++){
if (random requirement){
random code
i=1000;
}
}
所以没有将快速枚举转换为正向循环类型的东西(通过将i与[array count]
进行比较,如何在过程中停止快速枚举?
答案 0 :(得分:11)
for (NSString *element in array) {
if ([element isEqualToString:@"three"]) {
break;
}
}
如果要在达到某个索引时结束枚举,block-based enumeration可能会更好,因为它会在枚举时为您提供索引:
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
//…
if(idx == 1000)
*stop = YES;
}];
答案 1 :(得分:2)
for (id object in collection) {
if (condition_met) {
break;
}
}
答案 2 :(得分:1)
难道你不能只使用break语句吗?
for (int x in /*your array*/){
if (random requirement){
random code
break;
}
}
答案 3 :(得分:1)
只需为嵌套循环添加它,内部循环上的中断就会破坏该循环。外循环将继续。如果你想彻底突破你可以这样做:
BOOL flag = NO;
for (NSArray *array in arrayOfArrays) {
for (Thing *thing in array) {
if (someCondition) {
// maybe do something here
flag = YES;
break;
}
}
if (flag) {
break;
}
}