猿问

java编程问题


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? 看不明白. 求解答

小涛b
浏览 1315回答 3
3回答

慕粉3233872

数组下标是从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

这个和有没有排序是无关的,i=score.length-1是因为数组的下标是从0开始的,也就是说你的score数组的下标是从0到6的,而数组的长度为7,如果不减1,就会出现score[7],而数组中并不存在这个元素,会抛出数组下标越界异常
随时随地看视频慕课网APP

相关分类

Java
我要回答