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

求大神指点,谢谢!有一个错误提示,一直搞不懂!!!

package com.imooc;

import java.util.Arrays;

public class HelloWorld {   

    //完成 main 方法

    public static void main(String[] args) {

        HelloWorld hello=new HelloWorld();

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

        hello.showTop(scores);

    }

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

     public void showTop(int[]  scores){

        Arrays.sort(scores);

         int i;

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

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

                 continue;

             }

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

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

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

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

   } }}

这是运行的错误提示,请大神指点指点,具体错在哪儿了!!!

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1

at com.imooc.HelloWorld.showTop(HelloWorld.java:26)

at com.imooc.HelloWorld.main(HelloWorld.java:9)


正在回答

2 回答

倒数第二行和倒数第三行数组越界了,这个时候i是等于0 的


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

樱桃小wa子 提问者

哦,谢谢大哥,拿那这个要怎么改动呢!
2015-06-11 回复 有任何疑惑可以回复我~

package com.imooc;

import java.util.Arrays;

public class HelloWorld {   

    //完成 main 方法

    public static void main(String[] args) {

        HelloWorld hello=new HelloWorld();

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

        

        hello.showTop(scores);

    }

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

     public void showTop(int[]  scores){

    Arrays.sort(scores);

         int i;

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

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

                 continue;

             }

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

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

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

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

   } }}

/*提示的错误是数组下标越界

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

*/

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

樱桃小wa子 提问者

哦,谢谢大哥,那这个要怎么改动呢!
2015-06-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求大神指点,谢谢!有一个错误提示,一直搞不懂!!!

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