这个短路或运算中,i>j是ture的,就不用判断后面的m<k++,k也没有自加了,答案不是应该为7吗

这个短路或运算中,i>j是ture的,就不用判断后面的m<k++,k也没有自加了,答案不是应该为7吗

http://img1.sycdn.imooc.com//climg/5c9700bd0001f38407640286.jpg这个短路或运算中,i>j是ture的,就不用判断后面的m<k++,k也没有自加了,答案不是应该为7吗

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

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

8回答
小煜_ 2019-05-12 16:14:02

i>j是true,加上!(非运算符)之后是false,所以还得继续判断

我梦梦我 2019-05-09 16:42:26

想法没错 但是你忘了i > j 括号外面的! 非运算了  

Batter 2019-05-08 19:30:05

注意 (i>j)前面的!号,!(i>j)为假,需要继续后面的

小太阳哦 2019-05-02 16:21:05

先运行(i>j),再运行!(i>j),一手房优先级 ()> ! >||

永丿恒 2019-05-01 11:18:19

或运算符是需要两边都需要运算的,与运算符才是前面的结果是false后面就不用算直接判断结果

DreamMav 2019-04-25 22:03:26

有括号先算括号里的,没有括号按照运算符优先顺序进行运算,非运算符(!)的优先级最高,if括号里的运算顺序为(i>j)-> !(i>j) -> m<k -> k++ -> !(i>j)  || m<k++

桥豆麻袋灬丿 2019-04-18 17:24:19

!(i>j),这是一个整体,是第一个条件,||是第一个条件为true时,后面的条件就不用判断了,如果第一个条件为false,则继续判断第二个条件。希望能够对你有帮助。

BernieFeng 2019-03-24 20:16:36

!(i>j)||m<k++  --> !true||flase -->false||false-->false

所以执行else部分,k 之间参与运算一次k++ 所以 7+1 = 8

  • !(i>j)||m<k++ 中||是短路运算符,为什么还要执行后面的m<k++?
    2019-04-10 11:25:12
  • 哦,明白了,理解成&&运算符了
    2019-04-10 11:26:18
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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