视觉C++入门练习 1.12 结果令人困惑

visual C++ Primer exercise 1.12 results puzzleing

本文关键字:结果 C++ 练习 视觉      更新时间:2023-10-16

练习 1.12: 下面的"for"循环有什么作用? 总和的最终值是多少?

适用于上述练习的代码是:

#include < iostream >
int main()    
{    
    int sum = 0;
    for (int i = -100; i <= 100; ++i)
        sum += i;
    std::cout << "sum of i is : " << sum << std::endl;
}

sumi的结果是0

我的问题是i <= 100的条件。 答案如何0

我认为该程序将从-100一直算到100.

事实上,

它从-100一直算到100。让我们做一个更简短的例子(-2 到 <=2(:

sum = -2 + -1 + 0 + 1 + 2 = 0

你现在看到了吗?

它将从

-100 到 100 的所有数字相加。自100-100+99-99+...1-1+0=0,总和为0。

for(<init> ; <test>; <update>) { X;Y;Z; }

松散地翻译为

 <init>;  while (<test>) { X;Y;Z; <update>; }  

我们使用 for 循环而不是 while 循环,因为将所有循环逻辑放在一个块中通常很好,然后所有每个循环都在大括号内执行逻辑,其中一段时间循环会使它们更难在认知上分离。