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

為了賬號安全,請及時綁定郵箱和手機立即綁定

老師,我 想分清這三個定義變量的方法為什么結果不一樣呢?

老師,您好。 我想問的問題是在while循環下,i++, i=i++, i=i+1 , 這三個變量,我前提的判斷條件已經是i<=100了,i++和i=i+1的輸出結果一樣。為什么i=i++的輸出結果無線循環呢?謝謝老師

正在回答

3 回答

i=i++; 在循環中正常人都不會這么寫,要么直接i++,要么i = i+1,要么i = ++i。你這樣寫i=i++和i=i沒什么區別。

沒必要糾結這些無意義的東西,有這個時間還不如去點實際的東西。

0 回復 有任何疑惑可以回復我~
#1

Evan_Ma 提問者

好吧,聽你的
2017-07-06 回復 有任何疑惑可以回復我~

因為 i=i++;是先賦值參加運算,后自增,也就是說在運算結束之前都不會自增,在for循環這個閉包中,運算不會停止,i就一直是初始值,只有當跳出這個閉包運算之后i才會自增,但你的i一直是初始值,所以一直是<=100的,就進入了無限循環?

for(var i=0;i<3;){

i=++i;

console.log(i);

}

如此問題解決,原因是i先賦值了,并且直接參與到閉包中

1 回復 有任何疑惑可以回復我~
#1

Evan_Ma 提問者

謝謝大神
2017-06-22 回復 有任何疑惑可以回復我~

因為i=i++是先將“=”右邊的i賦值給左邊的i,然后i再自增,所以無論i自增到什么值,都和循環后的i沒有關系,循環后的i永遠都是100,滿足你的條件i<=100,所以就一直不斷進入無限循環了。

1 回復 有任何疑惑可以回復我~
#1

Evan_Ma 提問者

謝謝大神
2017-06-22 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

老師,我 想分清這三個定義變量的方法為什么結果不一樣呢?

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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