zoukankan      html  css  js  c++  java
  • ++a和a++

    1)

     1 public class Test {
     2     static {
     3         int x = 5;            //x是局部变量,不影响后边的值。
     4         System.out.println(x);
     5     }
     6     static int x,y;            //x和y是全局变量,初始化后x=0,y=0。
     7     public static void main(String[] args) {
     8         x--;
     9         System.out.println(x);
    10         myMethod();
    11         System.out.println(x + y++ +x);
    12     }
    13     public static void myMethod(){
    14         y = x++ + ++x;    
    15         System.out.println(x);
    16         System.out.println(y);
    17         //计算顺序:y = x+(++x);x+1
    18     }
    19 }

    输出结果为:

    5
    -1
    1
    0
    2

    分析:a++先执行整个语句,再将a值加1,而++b先将b的值加1,再执行整个语句。

    可以将y = x++ + ++x;中x++看成一条语句,++x看成另一条语句,如下程序所示:

    2)

     1 public class Test {
     2     static {
     3         int x = 5;            //x是局部变量,不影响后边的值。
     4         System.out.println(x);
     5     }
     6     static int x,y;            //x和y是全局变量,初始化后x=0,y=0。
     7     public static void main(String[] args) {
     8         x--;
     9         System.out.println(x);
    10         myMethod();
    11         System.out.println(x + y++ +x);
    12     }
    13     public static void myMethod(){
    14         int a,b;
    15         a = x++;
    16         b = ++x;
    17         System.out.println("a = " + a);        
    18         System.out.println("b = " + b);    
    19         y = a + b;    
    20         System.out.println(x);
    21         System.out.println(y);
    22         //计算顺序:y = x+(++x);x+1
    23     }
    24 }

    输出结果为:

    5
    -1
    a = -1
    b = 1
    1
    0
    2

    另外,调换上天a和b的先后顺序,输出结果是不一样的:

     1 public class Test {
     2     static {
     3         int x = 5;            //x是局部变量,不影响后边的值。
     4         System.out.println(x);
     5     }
     6     static int x,y;            //x和y是全局变量,初始化后x=0,y=0。
     7     public static void main(String[] args) {
     8         x--;
     9         System.out.println(x);
    10         myMethod();
    11         System.out.println(x + y++ +x);
    12     }
    13     public static void myMethod(){
    14         int a,b;
    15         b = ++x;
    16         a = x++;
    17         System.out.println("a = " + a);        
    18         System.out.println("b = " + b);    
    19         y = x++ + ++x;    
    20         System.out.println(x);
    21         System.out.println(y);
    22         //计算顺序:y = x+(++x);x+1
    23     }
    24 }

    输出结果为:

    5
    -1
    a = 0
    b = 0
    3
    4
    10

  • 相关阅读:
    Subclipse安装及应用【eclipse 3.7 + subclipse1.8】
    淘宝有病!
    集装箱货柜号码 公式算法
    自己网站利用支付宝结算时的说明
    发现安全卫士360影响电脑正常运行
    中国银行的动态口令
    c#中的接口(interface)到底应用在哪些地方?
    淘宝有病(二)
    What 's CATT(Computer Aided Test Tool)?How to deal with the CATT in the SAP System?什么是CATT(计算机附加测试工具)
    Consultanting Service
  • 原文地址:https://www.cnblogs.com/XuGuobao/p/7228211.html
Copyright © 2011-2022 走看看