求解,错在哪个地方了?

import java.util.Arrays;

public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

        int [] scores={89,-23,64,91,119,52,73};

       System.out.println("考试成绩的前三名为:");

       HelloWorld hello=new HelloWorld();

        hello.top3(scores);

        

    }

    public void top3(int[]scores){

        int count=0;

        Arrays.sort(scores);

        for(int i=scores.length;i>=0;i--){

            if(scores[i]<0||scores[i]>100){

                continue;

            }

            count++;

            if(count>3){

                break;

            }

        System.out.println(scores[i]);

        }

    }

    

    //定义方法完成成绩排序并输出前三名的功能

    

    

    

    错误信息为:考试成绩的前三名为:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at HelloWorld.top3(HelloWorld.java:16)
at HelloWorld.main(HelloWorld.java:9)

    

    

    

    

    

    

}


sn3959
浏览 1761回答 1
1回答

天启之魂

.ArrayIndexOutOfBoundsException: 7  意思为数组角标越界异常,异常数为角标7稍微看了下你的代码 你的数组里面有7个元素,那么元素里面的角标是0-6  但是你int i=score.length  i就为7,score[7]是不存在的! 你改为int i=score.length-1;就可以了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java