我正在使用以下for循环:
for (int intPrjName = 0; intPrjName < [arrPrjName count]; intPrjName++)
我在for循环下有一个if / else语句,其中else
块显示一条警告消息。假设数组计数为10;然后当if
失败时,else
块将执行十次,并且警报消息显示十次。我该如何停用此功能?
答案 0 :(得分:2)
您的问题是一般编程问题。最简单的方法是使用BOOL标志。
BOOL alertShown = NO;
for (int intPrjName = 0; intPrjName < [arrPrjName count]; intPrjName++) {
if (something) {
// . . .
} else {
if (!alertShown) {
[self showAlert:intPrjName]; // Or something
alertShown = YES;
}
}
}
答案 1 :(得分:1)
如果您想在条件失败时只显示一个警报,这可能意味着您不想继续循环。正如Jason Coco在评论中提到的那样,你来自循环中的break
。这是一个如何执行此操作的简单示例:
for (int intPrjName = 0; intPrjName < [arrPrjName count]; intPrjName++) {
if (condition) {
// do something
} else {
break;
}
}
否则,如果要检查数组中每个元素的某些条件,您可能希望跟踪失败并向用户显示摘要(可能是警报消息,另一个视图等)。简短的例子:
NSUInteger numFailures = 0;
for (int intPrjName = 0; intPrjName < [arrPrjName count]; intPrjName++) {
if (condition) {
// do something
} else {
numFailures++;
}
}
UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:title
message:@"Operation failed: %d", numFailures
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil] autorelease];
[alert show];
祝你好运!
答案 2 :(得分:0)
假设C是一个数组,其中n是int或NSNumber类型caste to int
for(n in C){
如果{n等于10)
dostuff }
否则{ doOtherStuff } }
}
这种方法的优点是你可以使用数组的大小。
查看Enumeration Glass的文档