c++ - for循环中的多个条件用于Cpp中的单个循环

标签 c++ for-loop logical-operators

当我引用 C++ MCQ 时,我通过了这个代码片段。以前我只使用 && 或 ||用于组合多个条件,但此代码使用 ',' :

using namespace std; 
int main() 
{ 
   int i; 
   for (i = 0; i < 0, 5; i++) 
       printf("%d ", i); 
   return 0; 
} 

对此的正式回答是无限循环。 请有人建议使用此代码段如何评估条件

最佳答案

您的 for 循环条件中有一个逗号运算符。 comma operator计算其第一个操作数并丢弃结果,然后计算第二个操作数并返回此值(和类型)。逗号运算符也是所有 C/C++ 运算符中最低的优先级,这意味着它始终是绑定(bind)到表达式的最后一个。

所以你的 for 循环中的条件相当于:

(i < 0), 5

此表达式的结果始终为 5,而不是 0(假)。因此,条件始终为真。

如果你最终让循环运行足够长的时间i ,这是一个有符号整数,将溢出。这会导致未定义的行为(感谢 @Jarod42)。

关于c++ - for循环中的多个条件用于Cpp中的单个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61401132/

相关文章:

performance - Replicate() 与 for 循环?

C++逻辑替代运算符

c# - 可以使用按位运算符代替 OR 之类的逻辑运算符吗

c++ - 堆上分配的内存大小

c++ - 在不久的将来是否有任何主流编译器可能支持 C++0x 无限制 union ?

c++ - 动态分配的数组只显示最后的结果

c++ - 复杂对称三对角矩阵的快速矩阵指数

python - 在 Python For 循环中重用迭代器变量

r - R 函数有没有办法判断它是从 `for` 还是 `while` 循环调用的?

java - 为什么 && 会返回并强制转换?