将“for ... in ... break”循环转换为“while”循环
问题描述:
我可以在while循环中转换此循环吗?将“for ... in ... break”循环转换为“while”循环
int i=0;
for (NSDictionnary *crossArrayDictionnary in (NSArray *)mainArray) {
//some code...
i++;
if (i>=50) {
break;
}
}
感谢,
答
这应该做的伎俩:
NSInteger max, i = 0;
max = [mainArray count] < 50 ? [mainArray count] : 50;
while (i < max) {
NSDictionary *crossArrayDictionnary = [mainArray objectAtIndex:i];
// You code here.
i++;
}
答
正如rckoenes说,
微小变化。
NSInteger i = 0;
while (i < 50 && [itemsMutable cout] >= i) {
NSDictionary *crossArrayDictionnary = [itemsMutable objectAtIndex:i];
// You code here.
i++;
}
+1
它更好地做手动计数而不是if,这会在每次循环时调用计数。 – rckoenes
答
NSEnumerator *enumerator = [mainArray objectEnumerator];
NSDictionary *crossArrayDictionnary = nil;
while ((crossArrayDictionnary = [enumerator nextObject])) {
//some code...
i++;
if (i>=50) {
break;
}
}
为什么呢?你仍然需要检查两个条件(数组长度和50)? – Thilo