Java的for循环中i++与++i的区别

文章转载自https://blog.csdn.net/github_37847975/article/details/77369851

平时在使用for循环时,都是这样写的:for(int i=0; i<10; i++),用的 i++。然而今天看算法的时候,发现有的for循环是这样的:for(int i=0; i<10; ++i),用的 ++i。

刚刚看到的时候就在想在for循环中 i++ 和 ++i 有什么区别呢?

越想心里越闹不停,没心思往下看了,只好自己取查查资料,再用实例尝试了一下,发现它们在for循环里面效果是一模一样的!

首先我们应该都知道++i与i++的区别是: ++i 是先执行 i=i+1 再使用 i 的值,而 i++ 是先使用 i 的值再执行 i=i+1

然后我们也知道for循环的执行顺序如下:

for(A;B;C)
{
   D;
}
  1. 进入循环执行A;//只是进入的时候执行.
  2. 执行B;//条件为真才执行D,不然就跳出for了.
  3. 执行D;
  4. 执行C;
  5. 再回到第2步开始执行

那么我们接着看下面实例:

1.for (int i=0; i<10; i++):

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):

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的时候:这里写图片描述

循环次数=1000的时候:这里写图片描述

循环次数=10000的时候:这里写图片描述

相信大家也看出来区别了,没错,就是运行时间有差别,当循环此时较少没多少出入,但是当我们循环的次数上去了那么这差距就有点明显了。然后仔细探考后发现:在Java中i++语句是需要一个临时变量取存储返回自增前的值,而++i不需要,也就是说i++ 是取值 复制 +1 返回,而++i 取值 +1 返回。这样就导致使用i++时系统需要先申请一段内存空间,然后将值赛如进去,最后不用了才去释放。多了这么一系列操作时间当然多了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值