【发布时间】:2019-01-27 07:16:57
【问题描述】:
我可以编写代码if(1) x++, y++; 而不是if(1) {x++; y++;},但在某些情况下它不起作用(见下文)。如果你能告诉我这件事就好了。
int x = 5, y = 10;
if (x == 5) x++, y++; // It works
if (x == 5) x++, return 0; // It shows an error
这同样适用于for 循环:
for (int i = 0; i < 1; i++) y++, y += 5; // It works
for (int i = 0; i < 1; i++) y++, break; // Does not work
【问题讨论】:
-
你需要了解表达式和语句的区别。
-
另请注意,使用the comma expression 的方式往往会使代码更难阅读、理解和维护。
-
因为逗号运算符的语法不是这样定义的......仅此而已。
-
与
int i = break;不起作用的原因相同。 -
你为什么还要这样做?只需使用大括号。它更清晰,更易于理解。
标签: c++ c comma comma-operator