objective-c – 是否可以重新启动for循环到第一次迭代?

在Objective-C中,是否可以重新启动到for循环的第一次迭代?在我找到一个“好”的对象之前,我不想对我的对象做任何事情,此时我想回去做每个对象的东西直到那个好对象.

所以,

bool someflag = false;
for (id object in array)
{
  if(object is good) 
  {
    someflag = true;
    //restart to first object in loop
  }
  if(someflag)
  {
    doStuffWithObject(object);
  }
}

或者有不同的/更好的方式来做我想做的事情?

显然,简单的方法是只有两个单独的for循环 – 所以如果我能得到第二个意见告诉我这是最好的方式,那就是我要拍的东西.出于某种原因,我觉得必须有更好的方法.

解决方法

没有快速枚举,没有(除了 goto),但是如果你使用索引访问方法,你可以:
NSUInteger count = [array count];
for (NSUInteger i = 0; i < count; i++)
{
    bool someflag = false;
    id object = array[i];
    if (isgood(object)) 
    {
        someflag = true;
        //restart to first object in loop
        i = 0;
    }
    if(someflag)
    {
        doStuffWithObject(object);
    }
}

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...