码迷,mamicode.com
首页 > 其他好文 > 详细

++a和a++

时间:2017-07-24 13:19:17      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:static   影响   ati   str   int   pre   bsp   oid   eth   

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

++a和a++

标签:static   影响   ati   str   int   pre   bsp   oid   eth   

原文地址:http://www.cnblogs.com/XuGuobao/p/7228211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!