我们如何得到这个输出C++

Ras*_*A M 0 c++

我有这个代码:

int i = 0, j = 0;
for(i=0,j=0;i<5,j<25;i++,j++);
    cout<<i <<" "<<j;
Run Code Online (Sandbox Code Playgroud)

我不知道它为什么输出25 25.我真的不明白为什么它的价值25 ij.任何人都可以解释一下为什么它从第二个条件达到25的价值?这是在一个for循环中检查两个条件的问题吗?

Lev*_*von 5

这是逗号运算符的效果.这意味着它忽略了测试的第一个参数,并返回第二个测试结果.

因为你;在循环结束时有分号()

 for(i=0,j=0;i<5,j<25;i++,j++);
                              ^
Run Code Online (Sandbox Code Playgroud)

你的for循环一直"无声地"执行(只考虑j<25条件),当它完成时,两个变量的值都是25.

如果要在循环执行时查看输出以验证此输出,请;for语句末尾删除.

如果你想根据两者的值终止循环i < 5,j < 25你可能想要使用&&(和)运算符.