美文网首页
验证++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++的区别

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