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

  • 相关阅读:
    如何查看ipynb文件
    使用python绘制爱心
    使用python将十进制数转为ip地址
    python使用下划线分割数字,提高可读性
    python的字符串基本操作
    pandas为csv添加新的行和列
    使用pandas库实现csv行和列的获取
    pycharm批量更改变量名
    (转)Doxygen文档生成工具
    MVC架构学习之Smarty学习——病来而蔫
  • 原文地址:https://www.cnblogs.com/zhanqing/p/9339723.html
Copyright © 2020-2023  润新知