亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一個簡單,但是很困擾我的問題求教

一個簡單,但是很困擾我的問題求教

天窗的螞蟻 2016-01-29 09:34:12
我先完整的敘述一下我的疑問點,希望能得到大家的幫忙。這是求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。這個我把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還是上一次循環得到的值
查看完整描述

7 回答

已采納
?
pardon110

TA貢獻1038條經驗 獲得超227個贊

第二個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?。怠。撁鎸嶋H換行顯示)

查看完整回答
反對 回復 2016-01-29
?
慕粉3311984

TA貢獻1條經驗 獲得超0個贊

那個能不能那個五子棋的源代碼給我啊,

查看完整回答
反對 回復 2016-05-30
?
weibo_微天下微生活_0

TA貢獻3條經驗 獲得超0個贊

什么亂七八糟的,n=2時,sum怎么就0+2了,sum=0的值又不在循環語句中

查看完整回答
反對 回復 2016-01-30
?
miku61

TA貢獻3條經驗 獲得超2個贊

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>

相信運行之后你就會解決你的疑惑了。

查看完整回答
反對 回復 2016-01-29
?
emloxe

TA貢獻1條經驗 獲得超0個贊

最簡單理解的方法 就是 在瀏覽器中斷點測試

查看完整回答
反對 回復 2016-01-29
?
Robin_1991

TA貢獻1條經驗 獲得超0個贊

你可以在里面打斷點 然后 每循環一次 看一下當前的sum和n的值喲。。

var sum=0;

var n=1;

while(n<=100){

sum=sum+n;

debugger;

n++;

debugger;

}


打開f12刷新 ? ?然后再 console里面打印出當前斷點n 和 sum的值 慢慢看吧

查看完整回答
反對 回復 2016-01-29
?
Caballarii

TA貢獻1123條經驗 獲得超629個贊

數值型加"<br/>"是什么鬼

你要測試也應該這么寫:

while(n<=100){
????document.write(sum);
????document.write("&nbsp;");
????sum=sum+n;
????document.write(sum);
????document.write("<br/>");
}

這樣就能看出每一步的值了

查看完整回答
反對 回復 2016-01-29
  • 天窗的螞蟻
    天窗的螞蟻
    額,好吧。您能給我解答一下疑惑嗎
  • Caballarii
    Caballarii
    sum=1,3,6,10.....5050,你給sum加了"<br/>",破壞了原來的代碼,所以得不到正確的值, 第二次循環之前sum=1,上次循環結束時候的值. sum=sum+n的意思是sum的當前值加上n的結果再賦值給sum
  • 天窗的螞蟻
    天窗的螞蟻
    謝謝您,弄明白了
  • 7 回答
  • 0 關注
  • 2191 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號