6 回答
TA贡献452条经验 获得超796个赞
第一次循环sum1=arguments[i]+sum0
第二次循环sum2=arguments[i]+sum1
第三次循环sum3=arguments[i]+sum2
可见,改变初始值sum0并不会对总循环造成太大的影响,因为sum0不会重复增加
因此你初始值增加了多少,总值就会改变多少
TA贡献149条经验 获得超291个赞
我想你纠结的是不是sum起始值+1 那循环N次 总值应该+N?
这样说,var sum=0;for(var i = 0;i<5;i++){sum=sum+1;} 运行了结果sum=5,因为sum加了5次1而已。 sum=1,那结果就是6,sum=10,结果是15;把加的1换成2,3,4,5结果一样
由此可见,sum的起始值加多少。最终结果加多少,跟循环是不相关的。
望采纳~~~
TA贡献146条经验 获得超54个赞
什么叫没有循环加上去? 这段代码一点问题都没有啊。 求1+2+3+4+5+6+8+0的和不就是29么?1+2+3+4+5+6+8+1不就是30么? 1+2+3+4+5+6+8+2不就是31么。。。。
TA贡献3条经验 获得超0个赞
结果没问题啊,box函数是将参数的所有值计算和返回。alert(box(1,2,3,4,5,6,8));的参数值和为29。你将sum的初始值调整为1,那么结果=29+1=30 ,改为2结果=29+2=31.没有问题
TA贡献361条经验 获得超191个赞
因为这里sum不断自加,但加得并不是最初声明的sum
i=0,sum=0(最初的sum)+arguments[0](即1),i++;(sum=1)
i=1,sum=1(第一次循环后的sum)+arguments[1](即2),i++;(sum=3)
i=2,sum=3(第二次循环后的sum)+arguments[2](即3),i++;(sum=6)
可以看到其实这里sum=arguments[i]+sum中的sum在第一次循环的时候就已经改变了,所以最初的var sum只是相加了一次,并不会循环到公式里去;
所以这里就是参数相加,然后再加上最初的sum的值
添加回答
举报