黑马程序员技术交流社区

标题: 关于逻辑运算符的问题! [打印本页]

作者: 黑客大王    时间: 2015-5-19 21:36
标题: 关于逻辑运算符的问题!
int x,y,z;

x=y=z=0;

++x || ++y && ++z; 这个题Y为什么等于0 我自己弄了好久都是1
作者: yi95392    时间: 2015-5-19 22:22
++x 为1,真 || 任意值 都为真,所以后面就不执行了,++y根本没执行,所以y = 0;
作者: 追随自然    时间: 2015-5-19 22:28
借用大师的话说,这是逻辑短路!
作者: 宋兴1228    时间: 2015-5-19 23:24
借用大师的话说,这是逻辑短路!
作者: Never_Yg    时间: 2015-5-20 08:53
2楼正解,我也学习到了
作者: cogddo    时间: 2015-5-20 09:16
就是逻辑运算符的短路规则,,(++x) = 1, 所以就不预算 ++y了,,再运算 ++z
作者: 刘雨轩1314    时间: 2015-5-20 09:22
楼上正解,执行了++x就没有在执行了,
作者: Emma    时间: 2015-5-20 09:33
算这个你得准备优先级表的,搜索一下优先级表,不用死记,碰到这种题,就参照表来算,其实这个挺简单的
作者: 李闯    时间: 2015-5-20 22:33
这道题 只有++x执行了
作者: shao    时间: 2015-5-20 23:02
二楼正解。。。。。。。。。
作者: 天是蓝色的    时间: 2015-5-20 23:07
哦,这是个内成规定,,是同一优先级别,程序执行从左到右,第一个是或,一真即真,后面不予考虑
作者: lyricdon    时间: 2015-5-20 23:14
因为++x已经为真,逻辑或后面就不会运行了
作者: hehelaicaicai    时间: 2015-5-21 07:16
二楼正解,刚开始我也算Y了 看了解释才恍然大悟
作者: Rdxer    时间: 2015-5-21 09:03
(++x) ||( ++y && ++z); 这里涉及到最短路的问题, ++x 为真,后面的就不用执行了
作者: Huylens    时间: 2015-5-21 09:07
只执行了++x操作,所以y为0
作者: sdzwb89    时间: 2015-5-21 09:11
学习了~~感谢分享!




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