如何使用两个或多个迭代器在for循环内递增

时间:2017-09-26 02:02:19

标签: c for-loop

int i,j;
for(i=0;j=10;j>=0;i<10;i++;j--){
   printf("%d %d",i,j);
}

它在执行时会带来错误,如何纠正它以及在for循环中使用多个迭代器的正确语法

3 个答案:

答案 0 :(得分:2)

for循环具有以下语法:

for ( expression ; expression ; expression )

有3个用分号分隔的表达式。你有6个用分号分隔的表达式。那句话无效。

您应该按如下方式编写:

for(i=0,j=10; j>=0 && i<10; i++,j--)

对于第一个表达式,使用逗号运算符分隔两个赋值。同样的第三个表达式。对于第二个,您希望两个条件都为真,因此使用逻辑AND运算符&&将它们分开。

此外,您获得的错误不是在执行时,而是编译

答案 1 :(得分:2)

for(i=0;j=10;j>=0;i<10;i++;j--){}更改为for(i=0, j=10; j>=0 && i<10; i++,j--){}

答案 2 :(得分:0)

您可以使用逗号运算符分隔初始化语句和限制两个变量的条件。见下文。

int i,j;
for(i=0,j=10;j>=0 && i<10;i++,j--){
   printf("%d %d",i,j);
}

要在以下部分的规范中查看逗号运算符

  

6.5.17逗号运算符   的语法   表达式:

     

赋值表达式

     

表达式,赋值表达式