代码工作正常但我无法理解它打印的内容

时间:2013-08-03 10:25:51

标签: c++

所以我正在阅读C ++ Primer(第5版),这是他们用来解释while语句的示例代码:

#include <iostream>
int main()
{
    int sum = 0, val = 1;
    // keep executing the while as long as val is less than or equal to 10
    while (val <=10) {
        sum += val; // assigns sum + val to sum
        ++val; // add 1 to val
    }
    std::cout << "Sum of 1 to 10 inclusive is " << sum << std::endl;
    return 0;
}

这是命令行提示中的程序:

program

我无法理解55来自哪里..

不应该是:

sum = 0
var = 1
sum = 0 + 1
var = 1 + 1
-snip-
sum = 6
var = 4

所以不应该打印6? 我真的很困惑。

2 个答案:

答案 0 :(得分:4)

1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55

答案 1 :(得分:1)

它的作用是:

  1. 将val初始化为1

  2. 递增val,直到每次迭代达到10

  3. 在每次迭代中将此val添加到总和

  4. 经过10次迭代后,总计达到55。

  5. 仍然不清楚,使用调试器并检查每一步。