首先我們應該都知道++i與i++的區別是: ++i 是先執行 i=i+1 再使用 i 的值,而 i++ 是先使用 i 的值再執行 i=i+1;
然後我們也知道for迴圈的執行順序如下:
for(a;b;c)
進入迴圈執行a;//只是進入的時候執行.
執行b;//條件為真才執行d,不然就跳出for了.
執行d;
執行c;
再回到第2步開始執行
那麼我們接著看下面例項:
1.for (var i=0; i<10; i++):
for(var i = 0; i<10; i++)
相當於:
for(var i=0; i<10;)
2.for (var i=0; i<10; ++i):
for(var i = 0; i<10; ++i)
相當於:
for(var i=0; i<10;)
在上述的迴圈體中,i++ 和 ++i 的作用是一樣的。
列印出來的資訊都是:
0 1
2 3
4 5
6 7 8 9
列印資訊也證明了 i++ 和 ++i 的作用是一樣的。
效率問題
++i相當於下列**
i += 1;
return i;
i++相當於下列**
j = i;
i += 1;
return j;
寫for迴圈的時候都是寫 ++i 而不是 i++。這樣效率高。當然如果編譯器會將這些差別都優化掉,那麼效率就都差不多了。
參考:
i 迴圈與i 迴圈
在網上看到一篇文章,裡面說i 和i 的效率有區別,這個區別我早就知道,其實就是乙個標誌暫存器的重用問題,雖然早就知道還是想寫出來來展示一下計算的魅力,這兩個例子是 int loop dec int n int i 0 int v 0 for i n i 0 i v i return v int lo...
for迴圈中的i 與 i
今天遇到乙個for迴圈 for i 1 i 1 i 其中使用的是 i,我以為 i會先於判斷執行,就上網找了找i 與 i的區別。答案很少,有乙個說的是效率後者高一些。然後我又寫了乙個測試的 var j 0 for i 1 i 1 i,j console.log console.log i,j 發現 是...
for迴圈中 i和i 的區別
語法 for 語句1 語句2 語句3 語句 1 在迴圈 塊 開始前執行 語句 2 定義執行迴圈 塊 的條件 語句 3 在迴圈 塊 已被執行之後執行 這就是迴圈中的 i和i 結果一樣的原因,但是效能不一樣,稍後解釋 語句1 同上面語法中的 語句1 語句1 是可選的,也就是說不使用語句1 也可以。var...