黑马程序员技术交流社区

标题: 论x++和++x的区别 [打印本页]

作者: 夜空中的星    时间: 2014-12-20 21:20
标题: 论x++和++x的区别
a++和++a如果在单独使用时,效果是一样的


如果在等式中,例子:s=a++和s=++a是不一样的

        int a=1;s=a++   此时的a是先赋值,再+1;所以此时s=1;a=2
        int a=1;s=++a   此时的a是先+1;再赋值,所以此时s=2;a=2



例子:
int x = 1,y = 1;

        if(x++==2 & ++y==2)       
        {
                x =7;
        }
        System.out.println("x="+x+",y="+y);  

分析:在这道题中,x++==2这个条件是不成立的,此时x的值是先赋值,所以1不等于2,但输出的时候x是+1的。,这道题的结果是  x=2 y=2


int x = 1,y = 1;

        if(x++==2 && ++y==2)       
        {
                x =7;
        }
        System.out.println("x="+x+",y="+y);  

分析:&&的运算方式是,当第一个条件为false时,就不再判断第二个条件,所以y不会去执行y++==2
所以结果是   x=2  y=1



int x = 1,y = 1;

        if(x++==1 | ++y==1)       
        {
                x =7;               
        }
        System.out.println("x="+x+",y="+y);
分析:x++==1这个条件是满足的   所以执行x=7;y也执行了y++==1  所以结果是 x=7,y=2



int x = 1,y = 1;

        if(x++==1 || ++y==1)       
        {
                x =7;               
        }
        System.out.println("x="+x+",y="+y);

分析:||短路与的运算方式是   当第一个条件为true时,就不再执行第二个条件,所以结果为x=7  y=1




作者: beyondskyqiu    时间: 2014-12-20 21:55
楼主分析的很详细啊。顶起。
作者: Afridoce    时间: 2014-12-20 22:22
c++  c先被使用再++
++c  c先++,c再被使用

哪一个在前面就先用哪一个~
作者: 不一样的颜色2    时间: 2014-12-20 22:33
这可是相当的仔细啊
作者: reyzarc    时间: 2014-12-20 23:10
恩 分析的很仔细。简单说就是++在前则先自增再操作,如果在后就先操作在自增
作者: Honelyboy    时间: 2014-12-20 23:16
顶一下,很好的例子。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2