我們應該都知道i++和++i的區別是:
++i是先執行 i = i +1 再使用 i 的值,而 i++ 是先使用 i 的值再執行 i = i + 1;
for循環的執行順序如下:
for(a;b;c)
{
d;
}
進入循環執行a;//只是進入的時候執行
執行b; //條件為真才執行d,不然跳出for了
執行d;
執行c;
再回到第2步開始執行
來看下面的實例:
for(int i = 0; i < 10;i++){
System.out.println(i);
}
相當於:
for(int i = 0; i < 10;){
System.out.println(i);
i++;
}
2.for(int i = 0; i<10; ++i){
System.out.println(i);
}
相當於:for(int i =0; i < 10;)
{
System.out.println(i);
++i;
}
在循環體中,i++和++i的作用是一樣的。
打印出來的信息是:
0
1
2
3
4
5
6
7
8
9
打印信息證明了i++和++i的作用是一樣的
但是肯定有一定區別的,所以把循環耗時也打印出來了。
循環次數 = 100的時候:
i++的時間是:5
++i的時間是:3
循環次數 = 1000的時候:
i++的時間是:25
++i的時間是:21
循環次數 = 10000的時候:
i++的時間是:179
++i的時間是:130
沒錯,就是運行時間的差別。在Java中i++語句是需要一個臨時變量取存儲返回自增前的值,而++i不需要。這樣就導致使用i++時系統需要先申請一段內存空間,然后將值塞如進去,最后不用了才去釋放。多了這么一系列操作時間。
大家可以仔細咀嚼一下我們開頭的這句話:++i是先執行 i = i +1 再使用 i 的值,而 i++ 是先使用 i 的值再執行 i = i + 1;
一個是先執行然后在使用 i 的值,一個是先使用 i 的值再執行,運行時間的快慢可想而知。這是博主私人經驗,有錯的地方可留意探討謝謝。