美文网首页
关于 i++ 和 ++i 的一些问题

关于 i++ 和 ++i 的一些问题

作者: FelixLiuu | 来源:发表于2019-07-25 18:36 被阅读0次

i++

i++ 如果有表达式运算,是先参与表达式计算,然后再自加1。具体见代码说明:

int a = 2;
int b = a++;
System.out.println("Test  " + a + "  " + b);

输出结果:
a = 3;b = 2
---------------

int a = 2;
a = a++;
System.out.println("Test  " + a);

输出结果:
a = 2
--------------

int a = 2;
a++;
System.out.println("Test  " + a);

输出结果:
a = 3

++i

++i 如果有表达式运算,是先自行加1,然后用自加后的值参与运算。具体见代码说明:

int a = 2;
int b = ++a;
System.out.println("Test  " + a + "  " + b);

输出结果:
a = 3;b = 3
---------------

int a = 2;
a = ++a;
System.out.println("Test  " + a);

输出结果:
a = 3
--------------

int a = 2;
++a;
System.out.println("Test  " + a);

输出结果:
a = 3

复合运算( i++ + ++i)

int a = 2;
int b = a++ + ++a;
System.out.println("Test  " + a + "  " + b);

输出结果:
a = 4;b = 6

解析说明:

  1. a++ 时,a = 2,有表达式,先运算,再自加1 所以,b = 2,a = 3
  2. ++a 时,a = 3,有表达式,先自行加1,再用自加后的值参与运算 所以此时 a = 4,b = 4
  3. 最后b = 2 + 4 = 6
  4. 按上面的计算,那 a 不该是 5 或 7 吗。其实仔细看,a 并没有经过表达式运算赋值 只是经历了 i++ 和 ++i ,所以 a 也只是经过了 两次自行加1 所以 a = 2 + 1 + 1 = 4

一些栗子

    int a = 0;
    int b = 0;
    for (int i = 0; i < 99; i++) {
        a = a++;
    }
    System.out.println("Test  " + a + "  " + b);
    for (int i = 0; i < 99; i++) {
        a = ++a;
    }
    System.out.println("Test  " + a + "  " + b);
    a = 0;
    b = 0;
    for (int i = 0; i < 99; i++) {
        b = a++;
    }
    System.out.println("Test  " + a + "  " + b);
    a = 0;
    b = 0;
    for (int i = 0; i < 99; i++) {
        b = ++a;
    }
    System.out.println("Test  " + a + "  " + b);

    输出结果:
    Test  0  0
    Test  99  0
    Test  99  98
    Test  99  99

相关文章

  • 关于 i++ 和 ++i 的一些问题

    i++ i++ 如果有表达式运算,是先参与表达式计算,然后再自加1。具体见代码说明: ++i ++i 如果有表达式...

  • Java中的i++ 和 ++i 在for循环使用

    Java的i++ 和++i 的区别i++:先赋值,后计算;++i;先计算,后赋值。 for循环中的i++和++i...

  • 关于i++和++i 的详解

    闲暇之余,发现自己对于i++和++i的观念变得模糊些许,所以今天又研究了下。废话不多说,本文参考了一些文章的解释,...

  • 关于 i=i++;

    提起后缀式的 i++,我最常听的一句总结就是 后缀模式:先返回,后自增。 但是对于这句话,反映出的意思却并不明朗。...

  • i++和++i的区别

    i++和++i有哪些区别? i++和++i都是实现变量i的自增,两者的区别在于i++是先运算,再加1,而++i是先...

  • i++和++i

    i++ 先赋值后相加 //结果65 ++i 先自加后赋值 //结果66

  • ++i和i++

    ++i和i++ 如果是自身使用,没有任何区别。 使用后再进行赋值时有区别: 前加:先自身+1再把结果赋值给...

  • i++和++i

    java场景一 打印结果: i: 0 j: 1 java场景二 打印结果: i: 0 j: 1

  • ++i和i++

    1.a = i++; 等校为 a = i; i = i + 1; 2.a = ++i; 等校为 i = i ...

  • 自增、赋值运算符

    1.自增 int i = 3; int a = i++ + i++ + i++;//第①个i++表达是值为3,i=...

网友评论

      本文标题:关于 i++ 和 ++i 的一些问题

      本文链接:https://www.haomeiwen.com/subject/bbtkrctx.html