我碰到这段代码。我通常使用'& &'或'||'在for
循环中分离多个条件,但此代码使用逗号来执行此操作。C'for'循环中的多个条件
令人惊讶的是,如果我改变条件的顺序,输出会发生变化。
#include<stdio.h>
int main() {
int i, j=2;
for(i=0; j>=0,i<=5; i++)
{
printf("%d ", i+j);
j--;
}
return 0;
}
输出= 2 2 2 2 2 2
#include<stdio.h>
int main(){
int i, j=2;
for(i=0; i<=5,j>=0; i++)
{
printf("%d ", i+j);
j--;
}
return 0;
}
输出= 2 2 2
有人能解释一下原因吗?它似乎只检查最后一个以逗号分隔的条件。
错误代码。你是对的;应使用&&或||连接多个条件。 – Caleb
五个答案,每个人都直截了当地回答这个问题,并解释逗号的作用,而不是一个答案,表明这是可怕的,可怕的破碎。 –