从某个索引开始遍历 NSmutatable 数组
Looping over an NSmutatable Array starting from a certain index
我有一个快速的问题,如何从某个索引开始遍历 NSMutable 数组。
例如,我有这些双循环,我希望 k 从与 l 相同的索引开始。
for (Line *l in L)
{
for (Line *k in L)
{
............
}
}
为了进一步详细说明,假设 L 有 10 个对象,所以 l 从 0-10 开始,k 从 0 -10 开始。我想要的是如果 l 等于 1 k 应该从 1-10 而不是 0 - 10 开始,当 l 等于 2 k 应该从 2- 10 而不是 0 开始。感谢任何帮助
Objective-C 是 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
包含三个子部分,即 initialisation、condition 和 增量。先执行初始化,然后条件判断是否执行for
体,增量 在正文中的语句之后和在测试 条件 以确定是否应执行另一次迭代之前执行。一个for
循环大致(有一些区别在这里不重要)到while
循环:
initialisation;
while(condition)
{
body statements;
increment;
}
您必须使用索引(普通)for
循环而不是快速枚举 (for-in
):
int l;
for (l=startValue; l<=endValue; l++)
{
int i;
for (int i=l; i<=endValue; i++)
{
…
}
}
你只需要修改for语句。
NSInteger indexYouNeed;
NSInteger iterationCount;
for (int i = indexYouNeed; i < iterationCount; i++) {
/* Your code here */
}
您可能会发现 this link 有帮助。
我有一个快速的问题,如何从某个索引开始遍历 NSMutable 数组。 例如,我有这些双循环,我希望 k 从与 l 相同的索引开始。
for (Line *l in L)
{
for (Line *k in L)
{
............
}
}
为了进一步详细说明,假设 L 有 10 个对象,所以 l 从 0-10 开始,k 从 0 -10 开始。我想要的是如果 l 等于 1 k 应该从 1-10 而不是 0 - 10 开始,当 l 等于 2 k 应该从 2- 10 而不是 0 开始。感谢任何帮助
Objective-C 是 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
包含三个子部分,即 initialisation、condition 和 增量。先执行初始化,然后条件判断是否执行for
体,增量 在正文中的语句之后和在测试 条件 以确定是否应执行另一次迭代之前执行。一个for
循环大致(有一些区别在这里不重要)到while
循环:
initialisation;
while(condition)
{
body statements;
increment;
}
您必须使用索引(普通)for
循环而不是快速枚举 (for-in
):
int l;
for (l=startValue; l<=endValue; l++)
{
int i;
for (int i=l; i<=endValue; i++)
{
…
}
}
你只需要修改for语句。
NSInteger indexYouNeed;
NSInteger iterationCount;
for (int i = indexYouNeed; i < iterationCount; i++) {
/* Your code here */
}
您可能会发现 this link 有帮助。