为了账号安全,请及时绑定邮箱和手机立即绑定

代码验证对的,但是找运行不出结果

老师好,没找出原因,哪里不对

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.showTop3(scores);

}

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

    public void showTop3(int[] scores)

    {

        Arrays.sort(scores);//使用Arrays.sort的方式实现数组排序

        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]);       

        }

    }

}

运行结果:

考试成绩前三名:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at HelloWorld.showTop3(HelloWorld.java:19)
at HelloWorld.main(HelloWorld.java:10)

正在回答

1 回答

(int i = scores.length;i>=0;i--)这里有问题。因为数组下标的取值范围是0到scores.length-1

0 回复 有任何疑惑可以回复我~
#1

慕大侠 提问者

哦哦,原来是这样,看来我理解的不够好,非常感谢您!
2015-08-09 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

代码验证对的,但是找运行不出结果

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信