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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

        int x=1,y=2,z=3;
          boolean u=false;
          u=!((x>= --y || y++ <z--)&&y==z)
          System.out.println("u="+u+"y="+y+"z="+z);
         
          x=1;y=2;z=3;
          u=!((x>= --y|y++ <z--)&y==z)
          System.out.println("u="+u);
        System.out.println("u="+u+"y="+y+"z="+z);
真心不知道这个怎么算的?求大神解决,并告知为啥

11 个回复

正序浏览
凌端浩 发表于 2015-8-28 00:30
u=true y=1 z=3
u=false
u=false y=2 z=2

不是短路前为假不运行后吗。
回复 使用道具 举报
凌端浩 发表于 2015-8-28 00:30
u=true y=1 z=3
u=false
u=false y=2 z=2

谢谢大神
回复 使用道具 举报

原来||的右边 y++ <z--没有运行呀
回复 使用道具 举报

u=true y=1 z=3
u=false
u=false y=2 z=2
||,&&是短路运算符,y++ <z--不会被执行

回复 使用道具 举报 1 0
遇到这种面试题的话。简直是送分的。。
这里要注意 短路 就完事了
回复 使用道具 举报
拿着笔,根据符号慢慢写写吧。。。思考一下先
回复 使用道具 举报
u=true y=1 z=3
回复 使用道具 举报 1 0
kieedi 发表于 2015-8-28 00:18
看着我都有点晕了。,,

我反正是被绕进去了
回复 使用道具 举报
看着我都有点晕了。,,
回复 使用道具 举报
向上 发表于 2015-8-28 00:12
在思考中。。。。

求大婶你帮我解决这个问题
回复 使用道具 举报
在思考中。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马