猿问

一个简单,但是很困扰我的问题求教

我先完整的叙述一下我的疑问点,希望能得到大家的帮忙。这是求1+2+3.....+100的和,输出的结果也是5050。我想问一下,在while循环里面,sum每次的值是多少?比如,一开始,n=1,sum=sum+n,即0=0+1,这时sum就等于123了。n++后,n=2了。sum=sum+n,这时sum的值是0呢还是1呢?sum=1+2,sum变成3了。n++,n变成3了,sum=sum+n,即sum=3+3,sum变成了6。以此类推。我的疑问就是,在每一次循环里,sum=sum+n这个等式里,第二个sum的值是不是上一次循环得到的值,还是一直保持为0。如果是上一次循环得到的值,那么sum一系列下来,就应该等于sum=1,3,6,10.....5050。

http://img.mukewang.com/56aac16000011aef03140268.jpghttp://img.mukewang.com/56aac16d0001118600290565.jpg这个我把sum=sum+n后面加了一个"<br/>"。输出的结果是1234567789.....100。也即是说n=1时,sum=sum+n,即0=0+1,sum=1了。n=2时,sum=sum+n,即0+2=2,sum=2.以此类推。那么跟上面得到的sum=1,3,6,10.....5050矛盾了。sum=sum+n这个等式中,第二个sum的值到底是0还是上一次循环得到的值



天窗的蚂蚁
浏览 2083回答 7
7回答

pardon110

第二个sum值是上一次循环得到的值,我这样写,你就会明白了。var n=1; var sum=0; while(n <= 5) {   //console.log(sum);   sum = sum+n+"<br/>";   n++;   console.log(sum);         // 循环内部打印    } console.log(sum);            // 循环外部打印结果如下1<br/>                         1<br/>2<br/> 1<br/>2<br/>3<br/> 1<br/>2<br/>3<br/>4<br/> 1<br/>2<br/>3<br/>4<br/>5<br/>问题在于字符“<br/>”,sum+n+"<br/>" 所得结果是一个字符串拼接,每次循环即是字符串拼接,而非是算术计算。 你直接使用循环外打印就会出现1 2 3 4 5 (页面实际换行显示)

慕粉3311984

那个能不能那个五子棋的源代码给我啊,

weibo_微天下微生活_0

什么乱七八糟的,n=2时,sum怎么就0+2了,sum=0的值又不在循环语句中

miku61

sum-sum+n+"<br/>"我知道想要的表达是将每次的sum都输出一遍。但是数值之后加上“字符”后,就会使得sum变成一个字符串了。(可以利用 typeof函数测试一下,alert(typeof sum);)我觉得应该可以这样做:<script>        var n=1,sum=0;        while(n<=100){            sum=sum+n;            document.write( sum+'<br>');            n++;        }        document.write(sum);    </script>相信运行之后你就会解决你的疑惑了。

emloxe

最简单理解的方法 就是 在浏览器中断点测试

Robin_1991

你可以在里面打断点 然后 每循环一次 看一下当前的sum和n的值哟。。var sum=0;var n=1;while(n<=100){sum=sum+n;debugger;n++;debugger;}打开f12刷新    然后再 console里面打印出当前断点n 和 sum的值 慢慢看吧

Caballarii

数值型加"<br/>"是什么鬼你要测试也应该这么写:while(n<=100){     document.write(sum);     document.write("&nbsp;");     sum=sum+n;     document.write(sum);     document.write("<br/>"); }这样就能看出每一步的值了
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答