为什么会出现这个问题?

来源:7-1 编程练习

木木田心

2019-10-20 00:14

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
	at HelloWorld.showTop3(HelloWorld.java:17)
	at HelloWorld.main(HelloWorld.java:9)
考试成绩的前三名为:




import java.util.Arrays;

public class HelloWorld {

  

    //完成 main 方法

    public static void main(String[] args) {

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

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

    HelloWorld hello = new HelloWorld();

    hello.showTop3(scores);

    }

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

    public void showTop3(int[] scores){

        Arrays.sort(scores);

        int num=0;

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

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

                continue;

            }

        num++;

        if(num>3){

            break;

            }

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

        }

    }}


写回答 关注

3回答

  • 慕哥8040036
    2019-11-17 01:19:58

    for循环里面应该这样写for(int i=sores.length-1;i<sores.length;i--)应该数组是从0开始的   所以i=数组的长度-1,

  • 然后就没有然后了0
    2019-10-23 14:17:13

    数组下标那里出错了,for ( int i = scores.length - 1; i >= 0&& scoreNum<3; i-- ),i应该从scores.length-1开始从后往前遍历

  • Onename_lhk
    2019-10-20 01:16:34

    数组下标从0开始,for循环中初始化i值为数组长度超界了,应为scores.length-1

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题