For 迴圈中 i++ 和 ++i 的區別
阿新 • • 發佈:2022-04-18
首先 ,來說一個結論!
在 for 迴圈中,i++
和 ++i
是一樣一樣的,但是++i
的迴圈耗時短。
建議使用 ++i
, 畢竟這也是一定程度上的系統優化了!
-
單獨拿出來說,
i++
和++i
的意思是一樣的,就是i = i + 1
-
當做運算子來說
a = i++ 和 a = ++i 這樣的形式,情況就不一樣了。 a = i++ 的意思是,先把 i 的值賦給a,即 a = i,再執行 i = i + 1; a = ++i 是先執行 i = i + 1,再把 i 的值賦給 a; 舉個例子來說,如果一開始 i = 4。 那麼執行a = i++這條語句之後,a = 4,i = 5; 那麼執行a = ++i這條語句之後,i = 5,a = 5; 同理,i-- 和 --i的用法也是一樣的。
-
在迴圈體中的區別
-
for 迴圈中,
for (int i = 0;i < 6;i++)
和for(int i = 0;i < 6;++i)
效果一樣 - 當迴圈比較少的時候,二者沒多少出入。可是當迴圈次數,上升到很大時,差距就很明顯了。
仔細探考後發現: 在
Java
中i++
語句是需要一個臨時變數,儲存自增前的值,而 ++i 是不需要的。 -
for 迴圈中,
這也就導致使用 i++ 時系統需要先申請一段記憶體空間,然後將值塞進去,最後不用了才去釋放。
多了這麼一步,效率就會比 ++i 低一些。
/** for(a;b;c) { d; } 1.進入迴圈執行 a, // 只是進入的時候執行, 2.執行 b; // 條件為真 執行d,否則,跳出迴圈。 3.執行 d ; 4.再執行 c ; 5. 回到第二步執行一次。 /