1. 程式人生 > >關於Java中for循環的i++和++i區別

關於Java中for循環的i++和++i區別

信息 執行c println 耗時 實例 空間 申請 開始 for

我們應該都知道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 的值再執行,運行時間的快慢可想而知。這是博主私人經驗,有錯的地方可留意探討謝謝。

關於Java中for循環的i++和++i區別