【发布时间】:2013-05-27 09:04:16
【问题描述】:
我遇到了这段代码。我一般使用 '&&' 或 '||'在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
有人可以解释原因吗?它似乎只检查最后一个逗号分隔的条件。
【问题讨论】:
-
错误代码。你说得对;多个条件应使用 && 或 || 连接。
-
五个答案,每个人都从字面上理解这个问题并解释逗号的作用,没有一个答案表明这是可怕的,可怕的破坏。