A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

    自增++与自减--之前一直觉得很明白,几乎也没在这个知识点错过,但今天做作业四个题全错了,才明白自己还是理解的不够透彻
    这几道题是用来强化短路与和短路或的,我做这题的时候,莫名地想到了运算符优先级,就看了下教材,上面写着++与--优先级为2,短路与或排在11和12
    于是我就想应该先算自增,于是就全错了现在还是没清楚优先级的问题,下面是那几道题:


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


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


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

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

5 个回复

倒序浏览
我现在只是记住了,++放后面要在整个句子完成之后再运算,但书上那个优先级是啥意思呢?
回复 使用道具 举报
如果++(--)不参与运算,比如:a++;  则都是自加一,若是参与运算,则++在前是先进性运算后赋值,若是++在后则先赋值后运算,归结于JAVA运算语句从左至右。
回复 使用道具 举报
会算就可以了!
回复 使用道具 举报
优先级的意思    是++和与或这几个运算符  先运算自增    这个没错

但x++和++x都是自增1,
你错的原因是没搞明白  x++  和++x有什么区别                                                
回复 使用道具 举报
想起那天同桌给我讲解的,x++确实是先进行了自增,但是参与语句运算的还是自增之前的值,而++x自增后参与语句运算的是自增之后的值。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马