首先 ,來說一個結論!
在 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. 回到第二步執行一次。
/