黑马程序员技术交流社区

标题: 面试题——关于逻辑运算符的问题求解 [打印本页]

作者: 公输子    时间: 2015-8-27 23:57
标题: 面试题——关于逻辑运算符的问题求解
        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);
真心不知道这个怎么算的?求大神解决,并告知为啥


作者: 向上    时间: 2015-8-28 00:12
在思考中。。。。
作者: 公输子    时间: 2015-8-28 00:17
向上 发表于 2015-8-28 00:12
在思考中。。。。

求大婶你帮我解决这个问题
作者: kieedi    时间: 2015-8-28 00:18
看着我都有点晕了。,,
作者: 公输子    时间: 2015-8-28 00:20
kieedi 发表于 2015-8-28 00:18
看着我都有点晕了。,,

我反正是被绕进去了
作者: 凌端浩    时间: 2015-8-28 00:24
u=true y=1 z=3
作者: 在唱歌    时间: 2015-8-28 00:25
拿着笔,根据符号慢慢写写吧。。。思考一下先
作者: Emerson    时间: 2015-8-28 00:26
遇到这种面试题的话。简直是送分的。。
这里要注意 短路 就完事了
作者: 凌端浩    时间: 2015-8-28 00:30

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


作者: 公输子    时间: 2015-8-28 00:43
凌端浩 发表于 2015-8-28 00:24
u=true y=1 z=3

原来||的右边 y++ <z--没有运行呀
作者: 公输子    时间: 2015-8-28 00:46
凌端浩 发表于 2015-8-28 00:30
u=true y=1 z=3
u=false
u=false y=2 z=2

谢谢大神
作者: 巧克黑力    时间: 2015-8-28 00:49
凌端浩 发表于 2015-8-28 00:30
u=true y=1 z=3
u=false
u=false y=2 z=2

不是短路前为假不运行后吗。




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