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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨胜男 中级黑马   /  2014-6-6 11:58  /  1168 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class  Test2
{
        public static void main(String[] args)
        {
                int x=0,y=1;
                if(++x==y--&x++==1||--y==0)
                        System.out.println("x="+x+",y="+y);
                else
                        System.out.println("y    ="+y+",x="+x);
        }
}

//if语句如何执行的,执行结果如何?

2 个回复

倒序浏览
本帖最后由 shisishishisi 于 2014-6-6 12:47 编辑
  1. [code]class  Test2
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int x=0,y=1;
  6.                 if(++x==y--&x++==1||--y==0)
  7.                         //1==1 & 1 == 1 || 0 ==0  x=2,y=0
  8.                         // true & true || true
  9.                         //true || true
  10.                         //true
  11.                         System.out.println("x="+x+",y="+y);//x=2,y=0
  12.                 else
  13.                         System.out.println("y    ="+y+",x="+x);
  14.                         
  15.         }
  16. }
复制代码
[/code]
回复 使用道具 举报 1 0
class  Test2
{
        public static void main(String[] args)
        {
                int x=0,y=1;
                if(++x==y--&x++==1||--y==0)                /*


                        ++x表示先自增,然后x=1,y--先使用y的值y=1 然后y自减,所以第一个判断++x==y--是true,然后
                          ,x++表示先使用x值,然后自增,所以x=2  所以第二个判断是 true,此时y=1,最后一个判断式--y==0,先是y自减,然后判断,结果true
                        所以 true&true||true,其实后面的--y== 0,不判断也可以了 ,因为||  逻辑运算符,左侧true 右侧不用判断, 所 以此时有结果了,x=2,y=0
                */
                        System.out.println("x="+x+",y="+y);
                else
                        System.out.println("y    ="+y+",x="+x);
                        
        }
}

评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马