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}\nRun Code Online (Sandbox Code Playgroud)\n给出的答案是Inside else 11 20我与编译器检查过,这是正确的答案,但根据我的说法,答案应该是Inside else 11 21。
为什么会出现这种情况?为什么 ++y 部分不执行?
\n我也尝试过 y++ 我仍然得到相同的答案。
\n当你写 时x++,这意味着两件事:
x由于当前值为 且10为10 > 10false,因此 后的部分&&(包括++y)不会被评估。
另一种选择是前缀增量,即++x.
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |