黑马程序员技术交流社区

标题: 关于逻辑运算符的几个输出问题,请求解答。 [打印本页]

作者: w123c    时间: 2017-3-9 00:40
标题: 关于逻辑运算符的几个输出问题,请求解答。
关于逻辑运算符,我列举了几个问题,发现已经把自己绕晕了,请求大神帮忙解答下,输出的a,b数值。谢谢。

QQ截图20170309004010.jpg (51.41 KB, 下载次数: 14)

QQ截图20170309004010.jpg

作者: SD.LZ    时间: 2017-3-9 01:20
第一个输出里,前面为真后面为假,输出假,输出后,b自增为7。第三个输出,前面为假,后面被短路,不判断b++>9,输出假,a自增为5,b不自增仍为7。第六个输出,前后都为假,输出假,a自增为6,b自增为8。第9个输出,前后都是假,输出假,b自增为9。第十个前面为真,后面再次被短路,至此a为6,b为9

作者: 281496929    时间: 2017-3-9 02:15
SD.LZ 发表于 2017-3-9 01:20
第一个输出里,前面为真后面为假,输出假,输出后,b自增为7。第三个输出,前面为假,后面被短路,不判断b+ ...

大神

作者: dengjie145145    时间: 2017-3-9 09:00
做这个要注意的是程序的运行顺序,还有就++运算的顺序,这两点弄懂了,这道题就简单了!

作者: mrwalker    时间: 2017-3-9 09:04
1楼正解。如果把&& 换成 & ,|| 换成 |,又是不一样的结果。&是无论左边是false还是true,右边都会执行,&&具有短路效果。左边是false,右边不执行。|| 跟 | 同理
作者: SD.LZ    时间: 2017-3-9 10:48
281496929 发表于 2017-3-9 02:15
大神

刚开始学习。楼主这个主要涉及就是++在前和在后的区别还有逻辑运算符的短路原理。

作者: w123c    时间: 2017-3-9 21:06
SD.LZ 发表于 2017-3-9 01:20
第一个输出里,前面为真后面为假,输出假,输出后,b自增为7。第三个输出,前面为假,后面被短路,不判断b+ ...

"第六个输出,前后都为假,输出假,a自增为6,b自增为8。"前后都为假,为啥都自增呢?
作者: w123c    时间: 2017-3-9 21:53
SD.LZ 发表于 2017-3-9 01:20
第一个输出里,前面为真后面为假,输出假,输出后,b自增为7。第三个输出,前面为假,后面被短路,不判断b+ ...

"第六个输出,前后都为假,输出假,a自增为6,b自增为8。"
我想起来了,| | 前后都为假,不产生短路,对逻辑输出值有影响,但不影响a,b运算。
作者: w123c    时间: 2017-3-9 21:59
mrwalker 发表于 2017-3-9 09:04
1楼正解。如果把&& 换成 & ,|| 换成 |,又是不一样的结果。&是无论左边是false还是true,右边都会执行,&& ...

谢谢




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