美文网首页
验证++i和i++的区别

验证++i和i++的区别

作者: 弃用简书 | 来源:发表于2017-07-03 22:32 被阅读0次

平时我们对k=++i和k=i++的区别解释一般记忆:
++i就是i先自身加1再赋值给k;
i++就是先将i赋值给k,i在自身加1;
这样的解释最终都是说将i赋值给了k。
这里通过写几个方法来证明,这个说法并不对。当然这样记忆可能更为方便些。


/**
 * 分析++i和i++的区别.
 * @author J.Kevin
 *平时我们对k=++i和k=i++的区别解释一般记忆:
 *<br/>++i就是i先自身加1再赋值给k;
 *<br/>i++就是先将i赋值给k,i在自身加1;
 *<p/>这样的解释最终都是说将i赋值给了k。
 *<p/>这里通过几个方法来证明,这个说法并不对。当然这样记忆可能更为方便些。
 */
public class Test {
    public static void main(String[] args) {
        test1();
        test2();
        test3();
        test4();
        test5();
        test6();
    }

    public static void test1() {
        int i = 10;
        int k = ++i;
        System.out.println("k=++i结果:\t" + k);
    }

    public static void test2() {
        int i = 10;
        int k = i++;
        System.out.println("k=i++结果:\t" + k);
    }

    public static void test3() {
        int i = 10;
        int k = (++i);
        System.out.println("k=(++i)结果:\t" + k);
    }

    public static void test4() {
        int i = 10;
        int k = (i++);
        System.out.println("k=(i++)结果:\t" + k);

    }

    public static void test5() {
        int i = 10;
        System.out.println("(++i)结果:\t" + (++i));
    }

    public static void test6() {
        int i = 10;
        System.out.println("(i++)结果:\t" + (i++));
    }

}

可以看到,一共写了6个方法,目的只是为了证明一件事,那就是k=++i和k=i++并不是将i值赋值给了k,而是将++i和i++这个表达式赋值个了k。如何证明?

看下我的打印结果:

输出结果
k=++i结果:    11
k=i++结果:    10
k=(++i)结果:  11
k=(i++)结果:  10
(++i)结果:    11
(i++)结果:    10

为了防止不好理解,这里特意为++i和i++添加了括号,意在证明结果就是(++i)和(i++)这个表达式的值。

相信有很多人已经知道是这样的,这里只是记录下,也方便没有理解的童鞋学习。◕ᴗ◕。

相关文章

  • 验证++i和i++的区别

    平时我们对k=++i和k=i++的区别解释一般记忆:++i就是i先自身加1再赋值给k;i++就是先将i赋值给k,i...

  • i++和++i的区别

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

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

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

  • i++和++i的区别

    1.简单的说,++i是先自加再赋值,i++先赋值再自加;

  • i++和++i的区别

    i++ :先引用后增加. ++i :先增加后引用. i++ :先在i所在的表达式中使用i的当前值,后让i加1. +...

  • i++和++i的区别

    1、首先,单独拿出来说++i和i++,意思都是一样的,就是i=i+1。2、如果当做运算符来说,就是a=i++或者a...

  • i++和++i的区别

    i++: int a =6; int a = i++; a is 6, i is 7; 原因是:int a = i...

  • i++和++i的区别

    直接上两个网上很经典的demo 例子1 答案:输出2和1 直接反编译class文件,得到前两行的java指令,分析...

  • i++和++i的区别

    文章首次发表在i++和++i的区别](https://github.com/funnycoderstar/blog...

  • i++ 和 ++i的区别

    1、赋值顺序不同 ++ i 是先加后赋值;i ++ 是先赋值后加;++i和i++都是分两步完成的。 因为++i 是...

网友评论

      本文标题:验证++i和i++的区别

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