package demo;import java.util.Arrays;public class HelloWorld { public static void main(String[] args){ HelloWorld hello=new HelloWorld(); int[] score={89 , -23 , 64 , 91 , 119 , 52 , 73}; hello.test(score); } public void test(int[]score){ Arrays.sort(score); int number=0; for(int i=score.length-1;i>=0;i--){ if(score[i]<=0 || score[i]>=100){ continue; } number++; if(number>3){ break; } System.out.println(score[i]); } } } for循环之前虽然经过sort方法进行排序过. 但是for循环为什么 i=score.length还要-1? 看不明白. 求解答
3 回答
慕粉3233872
TA贡献70条经验 获得超29个赞
数组下标是从0开始排序的。
例如int[] score={89 , -23 , 64 , 91 , 119 , 52 , 73};
score[0]=89,score[1]=-23,score[6]=73.
length是获取数组长度的,从1开始数,这里的score.length=7
所以score[6]=score[score.length-1]=73
yanrun
TA贡献317条经验 获得超240个赞
这个和有没有排序是无关的,i=score.length-1是因为数组的下标是从0开始的,也就是说你的score数组的下标是从0到6的,而数组的长度为7,如果不减1,就会出现score[7],而数组中并不存在这个元素,会抛出数组下标越界异常
添加回答
举报
0/150
提交
取消