一个很简单的for循环求和

img


假如我sum不赋初始值0的话我算的结果就永远比想要的结果多1 这是为什么!!还有这里for循环的执行顺序是i=1 i<=z sum=sum+1 ++i对吗

假如sum不赋初始值,sum就是一个随机值,sum = sum+i; 就会是随机值加 i ,不一定都是比结果多1。
for 循环里执行顺序第一次:i = 1 , i <= z , sum = sum + i , ++ i.
第二次: i <= z , sum = sum + i , ++i.
第三次: i <= z , sum = sum + i , ++i.
。。。。。

++i改i++,你自己输出一下++i和i++最后的值就知道问题了

++i不对

你可以试试 如果你给sum不赋初值,直接输出是多少,然后再思考。
一般编译器会初始化为0,但好像有点编译器也不会做这个动作,是随机值。
所以,使用前最好做初始化。