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

为啥报错呢?

import java.util.Arrays;


public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

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

        HelloWorld hello = new HelloWorld();

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

        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;

            }

            if(num > 3){

                break;

            }

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

        }

    }

}


正在回答

1 回答

for(int i = scores.length; i >= 0 ;i--) 改为for(int i = scores.length-1; i >= 0 ;i--)

下标越界 scores.length=7 ,而数组下标只有0-6  执行第一次时就下包越界了

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

猪猪骑士

下标越界 打错了
2019-08-15 回复 有任何疑惑可以回复我~
#2

慕妹0406788 提问者

三Q,虽然我自己已经找到错误了,不过还是谢谢你啦
2019-08-15 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165462    人
  • 解答问题       17585    个

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

进入课程

为啥报错呢?

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