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的值
添加回答
舉報