为了账号安全,请及时绑定邮箱和手机立即绑定

var sum=0是什么意思?

var sum=0是什么意思?

崔婉妮 2016-09-11 11:50:16
function box(){ var sum=0;      for(var i=0;i<arguments.length;i++){ sum=arguments[i]+sum; } return sum;}alert(box(1,2,3,4,5,6,8));这段代码,我将var sum =1   得出的结果是30     ;var sum=2  得出的结果是31  谁能解释下。貌似sum没有循环加上去
查看完整描述

6 回答

?
JustWannaHugU

TA贡献452条经验 获得超796个赞

第一次循环sum1=arguments[i]+sum0

第二次循环sum2=arguments[i]+sum1

第三次循环sum3=arguments[i]+sum2

可见,改变初始值sum0并不会对总循环造成太大的影响,因为sum0不会重复增加

因此你初始值增加了多少,总值就会改变多少


查看完整回答
1 反对 回复 2016-09-11
  • JustWannaHugU
    JustWannaHugU
    改变后的sum3'-sum3=sum2'-sum2=sum1'-sum1=sum0'-sum0为一个定值! 望采纳~
?
menghuanbaolei

TA贡献20条经验 获得超2个赞

初始化对象;

查看完整回答
反对 回复 2016-09-11
?
NadiaSmile

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的起始值加多少。最终结果加多少,跟循环是不相关的。

望采纳~~~

查看完整回答
反对 回复 2016-09-11
?
摩诃迦叶

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么。。。。

查看完整回答
反对 回复 2016-09-11
?
this_life

TA贡献3条经验 获得超0个赞

结果没问题啊,box函数是将参数的所有值计算和返回。alert(box(1,2,3,4,5,6,8));的参数值和为29。你将sum的初始值调整为1,那么结果=29+1=30 ,改为2结果=29+2=31.没有问题

查看完整回答
反对 回复 2016-09-11
?
stone310

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的值



查看完整回答
反对 回复 2016-09-11
  • 6 回答
  • 0 关注
  • 4212 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信