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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.执行以下语句后,y 的值为(    )。

int x,y,z;

x=y=z=0;

++x || ++y && ++z;
运行了之后y的值是:0,为啥呀!!!

10 个回复

正序浏览
来签到啦!
回复 使用道具 举报
wx_MkPtTU4D 发表于 2016-3-14 00:31
逻辑或前面成立就不执行后面的了,所以就y没有自增

谢了,之后师兄也帮我讲解了。思路跟你是一样的
回复 使用道具 举报
逻辑或前面成立就不执行后面的了,所以就y没有自增
回复 使用道具 举报
无色无味 发表于 2016-3-13 17:37
逻辑或的短路问题 ++x为1了 后面的都不执行了

大兄弟,谢谢了哈
回复 使用道具 举报
叫我超哥 发表于 2016-3-13 16:11
++x || ++y && ++z
++x || (++y && ++z)
整个表达式是一个逻辑或表达式;

谢谢了大兄弟,你也是深圳校区的吗?
回复 使用道具 举报
逻辑或的短路问题 ++x为1了 后面的都不执行了
回复 使用道具 举报
++x || ++y && ++z
++x || (++y && ++z)
整个表达式是一个逻辑或表达式;
结果遵从一真则真的原则;
只要第一个表达式为真,后面的就不参与运算,更谈不上什么返回值;
所以x有返回值为1;
y,z仍为0。
我也刚学,只能解释成这样了。
回复 使用道具 举报
逻辑运算符的短路问题
回复 使用道具 举报
布吉岛啊, 好难的样子
回复 使用道具 举报
不知道,这是什么鬼
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马