关于Java中for循环的i++和++i区别

我们应该都知道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 的值再执行,运行时间的快慢可想而知。这是博主私人经验,有错的地方可留意探讨谢谢。

猜你喜欢

转载自www.cnblogs.com/zhanqing/p/9339723.html