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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑客大王 中级黑马   /  2015-5-19 21:36  /  2004 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int x,y,z;

x=y=z=0;

++x || ++y && ++z; 这个题Y为什么等于0 我自己弄了好久都是1

15 个回复

倒序浏览
++x 为1,真 || 任意值 都为真,所以后面就不执行了,++y根本没执行,所以y = 0;
回复 使用道具 举报
借用大师的话说,这是逻辑短路!
回复 使用道具 举报
借用大师的话说,这是逻辑短路!
回复 使用道具 举报
2楼正解,我也学习到了
回复 使用道具 举报
就是逻辑运算符的短路规则,,(++x) = 1, 所以就不预算 ++y了,,再运算 ++z
回复 使用道具 举报
楼上正解,执行了++x就没有在执行了,
回复 使用道具 举报
Emma 中级黑马 2015-5-20 09:33:25
8#
算这个你得准备优先级表的,搜索一下优先级表,不用死记,碰到这种题,就参照表来算,其实这个挺简单的
回复 使用道具 举报
李闯 中级黑马 2015-5-20 22:33:06
9#
这道题 只有++x执行了
回复 使用道具 举报
shao 中级黑马 2015-5-20 23:02:51
10#
二楼正解。。。。。。。。。
回复 使用道具 举报
哦,这是个内成规定,,是同一优先级别,程序执行从左到右,第一个是或,一真即真,后面不予考虑
回复 使用道具 举报
因为++x已经为真,逻辑或后面就不会运行了
回复 使用道具 举报
二楼正解,刚开始我也算Y了 看了解释才恍然大悟
回复 使用道具 举报
Rdxer 中级黑马 2015-5-21 09:03:23
14#
(++x) ||( ++y && ++z); 这里涉及到最短路的问题, ++x 为真,后面的就不用执行了
回复 使用道具 举报
只执行了++x操作,所以y为0
回复 使用道具 举报
学习了~~感谢分享!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马