【发布时间】:2013-10-12 05:33:51
【问题描述】:
当我在具有不同条件的 for 循环中使用两个变量时,就像我在下面使用的两个条件 i<3,j<2 时,for 循环始终执行,直到第二个条件失败。
#include<iostream>
#include<conio.h>
using namespace std ;
int main()
{
int i,j ;
for(i=0,j=0;i<3,j<2;i++,j++)
{
cout<<"hello" ;
}
getch() ;
return 0 ;
}
在该代码中,hello 被打印 2 次。为什么?
如果我使用i<3,j<10,“Hello”会打印 10 次。我不明白为什么第一个条件被忽略了。是编译器依赖还是其他原因?
如果我用 || 之类的条件替换,一切都会正常进行(OR) 或 &&(AND)。另一件事是我无法在 for 循环本身中初始化 i 和 j,它向我显示一个错误,但是当我以 C 风格声明变量或 for 循环外的一个变量时工作正常,为什么会这样?
我使用的编译器是 Orwell Dev C++。
提前致谢。
【问题讨论】:
-
你和许多其他困惑的人一样,遇到了逗号运算符。
-
i<3,j<2是一种写条件的有趣方式...(可编译,但是...) -
通过这个:它可以帮助stackoverflow.com/questions/1232176/…
-
与其说是“有趣”,不如说是在试图混淆视听。第一部分被丢弃,所以你可以说,“i > 0, j
-
g++-4.87:14: warning: left operand of comma operator has no effect
标签: c++ loops for-loop declaration