zoukankan      html  css  js  c++  java
  • java的++i和i++的分析

    关于自增自减,先来一道题,大家尝试着做一下:

    1     public static void main(String[] args) {
    2         
    3         int a=2;
    4         int b=a++;
    5         int c=--a;
    6         System.out.println("a:"+a+",b:"+b+",c:"+c);
    7     }

    答案在这里:
    a:2,b:2,c:2
    看完答案,不知道大家有没有什么感觉,再来一道吧:

    1     public static void main(String[] args) {
    2         
    3         int i=0;
    4         for(int j=0;j<10;j++){
    5             i=i++;
    6         }
    7         System.out.println("i:"+i);
    8     }

    下面是答案:
    i:0
    猜对了吗,如果没猜对,好好想想,你一定会猜对的,什么?你猜对了,
    大神啊,那么请大神接招:

    1     public static void main(String[] args) {
    2         
    3         int i=5;
    4         int j=(i++)+(++i)+(i--)+(--i);
    5         System.out.println("i:"+i+",j:"+j);
    6     }

    答案来也:
    i:5,j:24
    怎么样,有没有什么感觉,别着急,下面是分析:

    1         //i++==> i=6;j=5
    2         //++i==> i=7;j=7
    3         //c--==> i=6;j=7
    4         //--d==> i=5;j=5
    5         //5+7+7+5=24
    6         //6+7+6+5=24

    但是有两个24,结果到底是哪一个呢,别急,看完下面的题你就知道答案了:

    1     public static void main(String[] args) {
    2         
    3         int i=5;
    4         int j=(i++)+(++i);
    5         System.out.println("i:"+i+",j:"+j);
    6     }

    这是正确答案:
    i:7,j:12
    猜对了吗,看我的分析:

    1         //i++==> i=6;j=5
    2         //++i==> i=7;j=7
    3         //6+7=13
    4         //5+7=12

    明白了吧 >O.O<
    这篇文章说是分析,但其实只是给大家出了几道题,如果大家有什么想法,可以给我留言哦。

  • 相关阅读:
    [USACO07JAN]平衡的阵容Balanced Lineup
    洛谷 P4389 付公主的背包 解题报告
    多项式Ⅱ
    半平面交 板子
    Problem C Dist 解题报告
    二维凸包的板子
    洛谷 P4841 城市规划 解题报告
    广二模拟赛 Problem A: 青春野狼不做理性小魔女的梦 解题报告
    CF 997E 解题报告
    洛谷 P4244 [SHOI2008]仙人掌图 II 解题报告
  • 原文地址:https://www.cnblogs.com/littleorange7/p/10171363.html
Copyright © 2011-2022 走看看