C++ 用于使用逗号运算符的多个控制语句

Ale*_*ica 1 c++ for-loop comma-operator

如果在“for 循环”中使用逗号运算符来编写多个控制语句,它如何?我试过

#include <iostream>

using namespace std;

int main() {
        for (int x = 0, y = 0; x < 3, y < 4; ++x, ++y) {
                cout << x << " " << y << endl;
        }
        return 0;
}

Run Code Online (Sandbox Code Playgroud)

似乎只计算最后一个表达式。泰

son*_*yao 6

这就是逗号运算符的工作原理。它的第一个操作数x < 3被评估,然后结果被丢弃;然后计算第二个操作数y < 4,并将该值作为逗号运算符的返回值返回。x < 3这里没有任何影响。

您可能希望使用operator&&operator||用于这种情况,例如x < 3 && y < 4x < 3 || y < 4基于您的意图。