【问题标题】:Multiple for loop handling [duplicate]多个for循环处理[重复]
【发布时间】:2013-06-11 20:34:09
【问题描述】:

“我在另一个内部使用两个 for 循环。在最里面的循环中,我正在检查一个 'if 条件',如果条件满足,整个循环我的意思是内循环和外循环都应该停止。但此刻下面的代码只能停止内循环外循环没有停止。请给我解决方案。”

for(int i=0; i<a_AllClothing.count;i++)
            {

                for (int j=0; j<tempAsset_array.count; j++) {

                    if([l_dressName rangeOfString:ImageName].location!=NSNotFound)
                    {
                        NSLog(@"Matched");

                        break;
                    }
                }
            }

【问题讨论】:

  • 你是第一届 sem CS 学生吗?您应该阅读“让我们 C”甚至 +2 级计算机科学书。在外循环使用condtion(s),你也有`goto的能力,但不要经常使用。
  • 先生,我只是想知道是否有任何不同的技术,而不是使用布尔值。
  • 在java中你有标记循环,在C/Obj-C中你需要使用BOOL或者将你的整个代码重构为一个方法,在最里面的if你可以使用return
  • 使用goto 跳出循环是完全有效的。

标签: iphone ios objective-c for-loop break


【解决方案1】:

你可以对 enumerationBlocks 做同样的事情。这假设您有一个数组数组。

__block BOOL containsDress = NO;
[a_AllClothing enumerateObjectsUsingBlock:^(NSArray * clothes, NSUInteger idx, BOOL *firstStop) {
    [clothes enumerateObjectsUsingBlock:^(NSString * cloth, NSUInteger idx, BOOL *seconStop) {
        if ([cloth isEqualToString:l_dressName]) {
            *firstStop = YES;
            *seconStop = YES;
            containsDress = YES;
        }
    }];
}];

【讨论】:

  • 糟糕,读错了。 +1
【解决方案2】:
BOOL isFound = NO;
for(int i=0; i<a_AllClothing.count && !isFound;i++)
            {

                for (int j=0; j<tempAsset_array.count; j++) {

                    if([l_dressName rangeOfString:ImageName].location!=NSNotFound)
                    {
                        NSLog(@"Matched");
                        isFound = YES;

                        break;
                    }
                }
            }

【讨论】:

  • 你确定吗?再次读取代码。
  • 这一篇也读错了。无论如何,它仍然只是一个代码转储,而不是一个答案
猜你喜欢
  • 2013-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-12
  • 2020-09-25
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
相关资源
最近更新 更多