选择题疑惑

选择题疑惑

http://img1.sycdn.imooc.com/climg//589abbc20001215518180536.jpg

老师,我想问一下答案为啥是8;我的理解是7;

正在回答 回答被采纳积分+1

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

4回答
慕运维2948618 2017-03-12 16:50:33


我觉得你是把优先级弄错了。

!优先级比较大。

(i>j)为true,则!true为false。

因为前面为false所以还要判断后面的条件。

m<k++也为false且k自加了。所以执行else里的语句,k再次自加。


所以结果为8。


如果在(i>j)||m<k++)再加一个括号,把所有的条件括起来,再取反,即!((i>j)||m<k++)。

此时的结果会是7。

提问者 YOUChain 2017-02-08 15:09:00

??????

提问者 YOUChain 2017-02-08 15:01:50

那么|和||的区别是什么

  • ||是短路运算符,也就是||前面的表达式的值如果为true,那么整个表达式的值就肯定为true了,因此||后面的表达式就不再执行了。你可以把i和j的值对换,自己执行一下看看k的值。祝学习愉快!
    2017-02-08 17:59:41
攻城师的白日梦 2017-02-08 14:47:43

答案是对的,m<k++,此时10<6之后执行了k++,k=7,但是由于条件不成立k--不执行,而是执行了else语句中k++,就是k=8了。

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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