为了账号安全,请及时绑定邮箱和手机立即绑定

数组排序后应该是{-119,-89,-73,-64,-52,-23,91} ​当运行到-23时,for循环里的执行情况时怎样的?两个if都还会执行吗?

https://img1.sycdn.imooc.com//5b62724c0001ea9f07150535.jpg

数组排序后应该是{-119,-89,-73,-64,-52,-23,91}

当运行到-23时,for循环里的执行情况时怎样的?两个if都还会执行吗?

正在回答

2 回答

你好,你看右边的运行结果,showTop3(scores)方法中数组会先按升序排列,第一个输入的应该是数组中的最大值91,第二个才是-23,-23的时候for循环的循环条件判断为true,循环变量自减一,然后执行内循环第一个if,-23判断为true,执行continue,跳过循环体for中的语句执行下一个成绩-52的判断,依然是true,依然执行continue,跳过循环体for中的语句直到结束。所以最终结果只有一个91,num也只有在输入91的时候才记过一次数,之后都被跳过了。https://img1.sycdn.imooc.com//5b6319300001bf2507140541.jpg

1 回复 有任何疑惑可以回复我~
#1

慕娘5114374

哦 当初看错了。。
2018-08-06 回复 有任何疑惑可以回复我~

不是太明白你的意思  但是这边如果走到-23,下次肯定就到91了  第一个if判断都不通过,所以会执行num++和最后一个if,但是显然第二个if判断也是false,就直接走到打印语句了

1 回复 有任何疑惑可以回复我~
#1

再见时光_43604918 提问者

你好,你看右边的运行结果,showTop3(scores)方法中数组会先按升序排列,第一个输入的应该是数组中的最大值91,第二个才是-23,-23的时候for循环的循环条件判断为true,循环变量自减一,然后执行内循环第一个if,-23判断为true,执行continue,跳过循环体for中的语句执行下一个成绩-52的判断,依然是true,依然执行continue,跳过循环体for中的语句直到结束。所以最终结果只有一个91,num也只有在输入91的时候才记过一次数,之后都被跳过了。
2018-08-02 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

数组排序后应该是{-119,-89,-73,-64,-52,-23,91} ​当运行到-23时,for循环里的执行情况时怎样的?两个if都还会执行吗?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信