'的可变数量为'周期 - 目标-C

时间:2015-12-13 20:18:34

标签: objective-c loops combinations

我想在上下文中添加N个循环:

if (dataArr[i].title.toLowerCase().contains(arrival.toLowerCase())){

我找到了here之类的解决方案,但不了解如何将其转换为Objective-C

2 个答案:

答案 0 :(得分:0)

猜猜 - 但也许会有所帮助。

在你写的标题中:

  

可变计数

然后在问题中:

  

我想在上下文中添加N个循环

最后编写代码:

for (NSInteger i=0; i<someCount; i++)

您是否可能会询问for循环条件中文字值与变量的使用情况?

代码片段:

i < someCount

是一个表达式,它在每次迭代到循环之前进行评估,以确定是否应该进行迭代。在执行整个循环之前,它不会以任何方式“预先评估”。

如果你写:

i < 42

然后条件将始终测试i的当前值小于42并执行迭代(如果是)。所以限制是常量。你也可以这样写:

i < j

然后限制是变量 - 对您的问题的一种可能解释。该条件将评估i的当前值是否小于j当前值

然而,如果j的值在迭代期间发生变化,那么条件中使用的值也会发生变化 - 您有一个“变量”限制 - 对您的问题的不同可能解释,在这种情况下而不是从变量中获得的限制 - 如在编程语言构造中 - 限制本​​身变量 - 就像它在变化中一样。这也是有效的,但你必须小心循环终止,例如:

NSInteger j = 1;
for( NSInteger i = 0; i < j, i++)
{
   j++;
}

会继续前进(直到溢出和环绕发生!)。

HTH

答案 1 :(得分:0)

这是递归的替代品,希望它有助于:
首先,您需要在@interface

中创建三个新属性
@property int a; //a variable for your loops do not edit its value other than what I say
@property int numberOfLoops;//the number of loops to nest inside each other
@property int someCount;//how many times each loop should repeat

现在在@implementation

-(void)repeatloops
{
for (int i = 0; i < self.someCount; i++){
if (self.a < self.numberOfLoops){
    self.a += 1;
    [self repeatloops];
}else{
    //do something for this loop, i'm gonna call this "sector a"
    //this would be the code you want to put inside each 'for' statement
}
}
self.a -= 1;
}

现在调用循环:

self.a = 0; //don't forget this
self.numberOfLoops = N; //N was your example variable, don't forget to change this
self.someCount = X;//X is also an example variable, you can change it to a constant etc.
[self repeatloops];//call the method

这会使某些事情呈指数级循环。例如:
self.numberOfLoops = 5self.someCount = 1NSLog("a"); in "sector a" - &gt;结果是(self.numberOfLoops ^ self.someCount) - 您的日志窗口中有很多“a”,不会使self.someCount变大!!