问答详情
源自:7-1 编程练习

for(int i=b.length-1;i>=0;i--) 为什么要倒序啊

这里为什么要-1呢?  

提问者:慕用2406418 2018-10-16 17:52

个回答

  • 慕前端0687572
    2018-10-16 21:30:38
    已采纳

    因为遍历新数组以后输出要求是成绩前三名嘛(从大到小);而前面用Arrays.sort()这个方法排序出来的结果是升序排列的(从小到大),所以遍历已经排好序的新数组当然要从后面开始啦,这样只要输出前3个符合条件的成绩就OK

  • 慕盖茨2481488
    2018-10-16 21:46:57

    数组下标是从零开始的,所以数组最大下标值是数组长度减去1

  • 慕盖茨2481488
    2018-10-16 21:43:22

    因为你用Arrays.sort()排序后得到的是升序序列,结果要输出最大值的前三个,要倒序输出才能输出升序序列中最大值的前三个数

  • 螃蟹与豪杰
    2018-10-16 21:39:52

    Arrays.sort(scores)得出的数组是从小到大排列的,倒序可以直接从最大的数及第一名开始推

  • 慕前端0687572
    2018-10-16 21:37:53

    xxx.length代表数组长度,也就是元素的个数,但是我们写代码的时候下标是从0开始的,所以下标最大也就是长度减一,例如int [ ] scores ={1,2,3,4,5}  这里  scores.length =5   遍历的时候用  scores[ i ]  代表每个元素,这里 i 最大只能取到4(即length-1),如果下标超出数组的长度会报错