For迴圈中,只能`i++`或者`++i`嗎?
阿新 • • 發佈:2022-05-20
首先看這樣一段程式碼。
執行後在頁面顯示是這樣的。
但是我想一次性+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確實是+了,只是值還沒到位,迴圈就開始,值沒變化,始終為原始值,於是死迴圈。