1. 程式人生 > 其它 >For迴圈中,只能`i++`或者`++i`嗎?

For迴圈中,只能`i++`或者`++i`嗎?

首先看這樣一段程式碼。

執行後在頁面顯示是這樣的。

但是我想一次性+2,而i++只能累加1,於是我改成了這樣。

var count=0;
var count1=1;
for(var i=1;i<=99;i+2){
	count+=i;
}
document.write("1~99中的奇數的和是"+count);			

但是瀏覽器的狀態一直重新整理,沒有內容。

很明顯,這是死迴圈了,但是不應該啊,難道是i+2的問題?

於是搜尋過後,恍然大悟。

因為i++,是有自加功能的,它的含義是i=i+1的縮寫,它有兩層含義,一是i+1,二是把得到的值再復賦值給i。
而單純一個i+1沒有賦值功能,加完以後,i的值還是原值,加上1,毫無意義。


一般的c語言程式,碰到你寫的i+1或者是sum+1這樣的式子,程式碼都會正常執行而不會報錯,只是達不到預期的目的而已。


總之,不管出不出現錯誤提示,你寫成i+1或者是sum+1毫無用處,也不會起到任何作用,它不能代替i++,或者sum++。

i++不是單純+1,他存在了一個過程,i = i + 1,而這樣就不是直接賦值。

至於為什麼i + 2不行,因為他是一步到位,迴圈中這樣i的值是沒有任何變化的!

+2確實是+了,只是值還沒到位,迴圈就開始,值沒變化,始終為原始值,於是死迴圈。

我的部落格