【发布时间】:2021-12-02 06:37:08
【问题描述】:
代码
#include <iostream>
using namespace std;
int main()
{
int i = 1;
while (i < 10)
if (i++ % 2 == 0)
cout << i << endl;
return 0;
}
输出是
3
5
7
9
由于i为1,我以为if语句满足2% 2 == 0,应该输出2,但不知道为什么是3。
【问题讨论】:
-
它是后增量,因此它使用
i的 old 值作为%运算符。 -
i++在增量之前计算为i的值,因此对于2是您在if的语句中获得的i == 3的股息(cout << i << endl;部分)。 -
让自己熟悉排名第二的程序员生产力工具的好机会:调试器。使用调试器,您可以以您的速度运行程序,并观察计算机对您的程序所做的操作。典型的用法是逐行逐行执行程序,并留意意外情况,例如存储的错误值或采用的错误路径。意外是程序中的错误或您的期望。任何一个都需要修复才能继续。
标签: c++ while-loop post-increment