For loop和if语句

时间:2011-04-09 13:55:33

标签: iphone objective-c for-loop

我正在使用以下for循环:

for (int intPrjName = 0; intPrjName < [arrPrjName count]; intPrjName++)

我在for循环下有一个if / else语句,其中else块显示一条警告消息。假设数组计数为10;然后当if失败时,else块将执行十次,并且警报消息显示十次。我该如何停用此功能?

3 个答案:

答案 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的文档