c++ - 无法理解带有两个变量的循环

标签 c++ loops for-loop declaration

<分区>

当我在具有不同条件的 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) or &&(AND) ,为什么会这样?

我用过的编译器是Orwell Dev C++。
提前致谢。

最佳答案

for(i=0,j=0;i<3,j<2;i++,j++)

相当于

for(i=0,j=0;j<2;i++,j++)

逗号表达式采用最后一个表达式的值。

第一个条件将被忽略,仅使用第二个条件。

关于c++ - 无法理解带有两个变量的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19194436/

相关文章:

c++ - 带有预选功能的opencv kmeans功能

C++ 停止 for 循环的 "best"方法是什么?

java - jni 在内部类中找不到方法,java.lang.NoSuchMethodError

c++ - unicode 正则表达式 C++

c++ - 没有先定义 (#define) 宏就使用 #undefine 的效果

java - While 循环在提示前执行一次

java - 没有额外的 readLine() 循环就无法检测到断开连接

c - 如何在循环中使用scanf使用C中的指针将字符保存在数组中

python - 如何加速 Python 中的嵌套 for 循环

java - 搜索二维数组