对于指定的i值,在C中循环FOR循环

时间:2012-06-11 11:50:10

标签: c

我正在尝试在c中使用特定的i值进行FOR循环,例如i = 2,6,8,12,16,20,22,26,34 ..我只是不知道如何指定增量因为它们不相等。这段代码对我不好。

for (i=2,i<=30,i++) {

}

可能在i中使用指定的值数组,然后运行for循环并引用该数组?

任何帮助?

6 个答案:

答案 0 :(得分:6)

您的for - 循环语法需要修复。

第一个选项是使用自定义功能:

 for (i=2; i <= 30; i = foo(i)) { ... }

其中foo是一个函数,它取当前值i并返回下一个值。您需要自己提出foo的正确定义。

另一种方法是将所有这些值放在一个数组中,并将该数组用作索引:

 int indices[ MAX_INDICES ] = { 2, 6, ... };
 for (size_t j = 0; j < MAX_INDICES; ++j) { 
      /* instead of using 'j' use indices[ j ] now on */
 }

答案 1 :(得分:1)

您要添加的金额似乎并不总是相同。因此,我建议将值放入数组并使用索引循环遍历它。

伪代码:

int vals[10];

// fill the values
vals[0] = 2;
vals[1] = 6;
vals[2] = 8;
...
for(int i = 0; i < 10; ++i)
{
   // work
}

答案 2 :(得分:1)

正确,您希望将索引放在数组中:

static const int indices[] = { 2,6,8,12,16,20,22,26,34 };
for (int i = 0; i != sizeof(indices) / sizeof(indices[0]); ++i) {
    const int j = indices[i];
    ...
}

答案 3 :(得分:1)

i的值是否有任何模式?如果没有,并且您需要的可能值的数量足够小,则需要创建一个数组并在整个数组中进行迭代,如:

int myValue[9] = {2,6,8,12,16,20,22,26,34};
int i;
for(i=0; i < 9; i++)
{
    printf("myValue[%d] = %d\n", i, myValue[i]);
}

答案 4 :(得分:0)

对于2的步骤,你可以这样做。 for(i = 2,i <= 30,i + = 2){

}

答案 5 :(得分:0)

具体限制是什么?似乎大部分时间都会增加4,但之后会有变化。

鉴于此,似乎最好的方法是将所需的值放入数组并以这种方式使用它们,或者定义一个可以生成这些值然后以这种方式访问​​它们的函数(而不是通过你的索引)值数组)。

另外,请注意for - 圈内的部分由;而不是,

分隔