Pap*_*ane -1 c++ if-statement post-increment logical-and
所以这是我提出的问题,我需要告诉输出:
\n#include <iostream>\nusing namespace std;\nint main()\n{\n int x = 10;\n int y = 20;\n if(x++ > 10 && ++y > 20 ){\n cout << "Inside if ";\n } else{\n cout << "Inside else ";\n }\n cout << x << \xe2\x80\x9c \xe2\x80\x9c << y;\n}\n
Run Code Online (Sandbox Code Playgroud)\n给出的答案是Inside else 11 20
我与编译器检查过,这是正确的答案,但根据我的说法,答案应该是Inside else 11 21
。
为什么会出现这种情况?为什么 ++y 部分不执行?
\n我也尝试过 y++ 我仍然得到相同的答案。
\n当你写 时x++
,这意味着两件事:
x
由于当前值为 且10
为10 > 10
false,因此 后的部分&&
(包括++y
)不会被评估。
另一种选择是前缀增量,即++x
.