1. 程式人生 > 其它 >For 迴圈中 i++ 和 ++i 的區別

For 迴圈中 i++ 和 ++i 的區別

首先 ,來說一個結論!


在 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)效果一樣
    • 當迴圈比較少的時候,二者沒多少出入。可是當迴圈次數,上升到很大時,差距就很明顯了。

    仔細探考後發現: Javai++語句是需要一個臨時變數,儲存自增前的值,而 ++i 是不需要的。

這也就導致使用 i++ 時系統需要先申請一段記憶體空間,然後將值塞進去,最後不用了才去釋放。

多了這麼一步,效率就會比 ++i 低一些。

/**
for(a;b;c)
{
  d;
}

	1.進入迴圈執行 a, // 只是進入的時候執行,
	2.執行 b; // 條件為真 執行d,否則,跳出迴圈。
	3.執行 d ;
	4.再執行 c ;
	5. 回到第二步執行一次。

/