我有这个代码:
int i = 0, j = 0;
for(i=0,j=0;i<5,j<25;i++,j++);
cout<<i <<" "<<j;
而且我不知道为什么它会输出 25 25
。我真的不明白为什么它在i
和j
中得到值25。任何人都可以解释一下为什么它从第二种情况达到值(value) 25 吗?这是一个for循环检查两个条件的问题吗?
最佳答案
这是 comma operator 的效果.这意味着它忽略测试的第一个参数并返回测试结果的第二个参数。
因为循环结束时有分号 ( ;
)
for(i=0,j=0;i<5,j<25;i++,j++);
^
您的 for 循环一直“静默”执行(仅考虑 j<25
条件),完成后,两个变量的值为 25
.
如果您想在循环执行时查看输出以验证这一点,请删除 ;
从 for
的末尾开始声明。
如果您想根据 i < 5
的值终止循环和 j < 25
你可能想使用 &&
(和)运算符。
关于c++ - 我们如何获得此输出 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11328248/