我有一个快速的问题:如何从特定的索引开始循环处理NSMutable数组。例如,我有这些双循环,我希望k从与l相同的索引开始。
for (Line *l in L)
{
for (Line *k in L)
{
............
}
}为了进一步说明,假设L有10个对象,所以l从0-10开始,k从0 -10开始。我想要的是,如果l等于,1k应该从1-10开始,而不是从0-10开始,当我等于的时候,2k应该从2-10开始,而不是0。任何帮助都是非常感谢的。
发布于 2017-05-24 06:24:13
您只需修改for-语句即可。
NSInteger indexYouNeed;
NSInteger iterationCount;
for (int i = indexYouNeed; i < iterationCount; i++) {
/* Your code here */
}你可能会发现this link很有用。
发布于 2017-05-24 06:16:38
Objective是C的扩展,查找C for循环,您将得到答案。HTH
增编
我本打算让您从自己查找C for的学习经验中受益,然而,在编写添加了代码后的所有其他答案时,请给出代码,但它还没有完成,因此,下面是按照您希望的顺序生成l和k值所需的内容:
for(NSInteger lIndex = 0; lIndex < L.count; lIndex++)
{
Line *l = L[lIndex]; // index into your array to get the element
for(NSInteger kIndex = lIndex; kIndex < L.count; kIndex++)
{
Line *k = L[kIndex];
// process your l and k
}
}如您所见,for有三个子部分,即初始化、条件和增量。首先执行初始化,然后是确定是否执行for主体的条件,增量在正文中的语句之后和条件测试之前执行,以确定是否应该执行另一个迭代。for循环对while循环来说大致是(这里有一些不重要的区别):
initialisation;
while(condition)
{
body statements;
increment;
}发布于 2017-05-24 06:23:21
您必须使用索引(普通) for循环而不是快速枚举(for-in):
int l;
for (l=startValue; l<=endValue; l++)
{
int i;
for (int i=l; i<=endValue; i++)
{
…
}
}https://stackoverflow.com/questions/44150266
复制相似问题