短路运算符

短路运算符


如果&&左边为true,依旧要计算右边的,例:


int n=3;


boolean b=(3<7)&&((n++)<2)结果是不是:

b=false,n=4

???

正在回答

登陆购买课程后可参与讨论,去登陆

6回答

你说的是对的,3<7 是true 所以短路运算符后面会运行判定,(n++)<2,会判断,为false,所以结果为b=false,n=4;

&&短路运算符只是会在前一条件不成立(即false)的情况下 不运行后面的判断,如果第一条件成立(即true),不管是不是短路运算符第二条件都会运行判定

huaixinniunai 2017-09-10 18:27:57

3<7 永远为真,而&&运算的短路基础是0乘以任何数都为0的特性,也就是会从左至右寻找当前表达式里任何含有逻辑值为false的情况,如果找到了,那么无论表达式里还有多少个true,&&运算的结果都会因为1个false而为false

苏眉鱼 2017-06-13 10:06:40

哦,清楚了。

季节v 2017-04-19 10:03:05

n是3,因为&&是短路运算符,当前面一个决定了值,后一个表达式就不用计算了。

如果是&,那就都计算,那时候n就是4.

书童hoho 2017-04-06 16:43:50

你都说了是短路运算符。前一个3<7为false,就不会执行后面的判断句,n自然就不会自加了。


慕粉1912332396 2017-04-03 16:37:20
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师