Nay*_*yem 41 c c++ comma comma-operator
我可以编写代码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
Run Code Online (Sandbox Code Playgroud)
这同样适用于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
Run Code Online (Sandbox Code Playgroud)
Rak*_*111 60
那是因为return而且break是陈述,而不是表达.因此,您不能以任何方式在另一个表达式中使用它.if其他人同样也是陈述.
然而,你可以做的是重写你的表达式(for return),使它不嵌套在表达式中 - 不是我建议编写这样的代码:
return x++, 0;
Run Code Online (Sandbox Code Playgroud)
你不能这样做,break因为它不接受表达式.