7 回答

TA貢獻(xiàn)1038條經(jīng)驗(yàn) 獲得超227個(gè)贊
第二個(gè)sum值是上一次循環(huán)得到的值,我這樣寫,你就會(huì)明白了。
var?n=1; var?sum=0; while(n?<=?5) { ??//console.log(sum); ??sum?=?sum+n+"<br/>"; ??n++; ??console.log(sum);?????????//?循環(huán)內(nèi)部打印??? } console.log(sum);????????????//?循環(huán)外部打印
結(jié)果如下
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/>" 所得結(jié)果是一個(gè)字符串拼接,每次循環(huán)即是字符串拼接,而非是算術(shù)計(jì)算。 你直接使用循環(huán)外打印就會(huì)出現(xiàn)1?。病。场。础。怠。撁鎸?shí)際換行顯示)

TA貢獻(xiàn)3條經(jīng)驗(yàn) 獲得超0個(gè)贊
什么亂七八糟的,n=2時(shí),sum怎么就0+2了,sum=0的值又不在循環(huán)語句中

TA貢獻(xiàn)3條經(jīng)驗(yàn) 獲得超2個(gè)贊
sum-sum+n+"<br/>"
我知道想要的表達(dá)是將每次的sum都輸出一遍。但是數(shù)值之后加上“字符”后,就會(huì)使得sum變成一個(gè)字符串了。(可以利用 typeof函數(shù)測(cè)試一下,alert(typeof sum);)我覺得應(yīng)該可以這樣做:
<script>
?? ??? ?var n=1,sum=0;
?? ??? ?while(n<=100){
?? ??? ??? ?sum=sum+n;
?? ??? ??? ?document.write( sum+'<br>');
?? ??? ??? ?n++;
?? ??? ?}
?? ??? ?document.write(sum);
?? ?</script>
相信運(yùn)行之后你就會(huì)解決你的疑惑了。

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個(gè)贊
你可以在里面打斷點(diǎn) 然后 每循環(huán)一次 看一下當(dāng)前的sum和n的值喲。。
var sum=0;
var n=1;
while(n<=100){
sum=sum+n;
debugger;
n++;
debugger;
}
打開f12刷新 ? ?然后再 console里面打印出當(dāng)前斷點(diǎn)n 和 sum的值 慢慢看吧

TA貢獻(xiàn)1123條經(jīng)驗(yàn) 獲得超629個(gè)贊
數(shù)值型加"<br/>"是什么鬼
你要測(cè)試也應(yīng)該這么寫:
while(n<=100){ ????document.write(sum); ????document.write(" "); ????sum=sum+n; ????document.write(sum); ????document.write("<br/>"); }
這樣就能看出每一步的值了
添加回答
舉報(bào)