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

  • 相关阅读:
    二、java基础-运算符_控制语句_break_continue_return
    一、Servlet之14道面试题
    Java程序员需要掌握的技能
    java内存溢出实战
    java虚拟机JVM基础
    常见数据结构与算法整理总结(下)
    常见数据结构与算法整理总结(上)
    Java实现八大排序算法
    23种设计模式图集
    引用iscroll的一个封装方法
  • 原文地址:https://www.cnblogs.com/zhanqing/p/9339723.html
Copyright © 2011-2022 走看看