int i,j;
for(i=0;j=10;j>=0;i<10;i++;j--){
printf("%d %d",i,j);
}
它在执行时会带来错误,如何纠正它以及在for循环中使用多个迭代器的正确语法
答案 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逗号运算符 的语法强> 表达式:
赋值表达式
表达式,赋值表达式