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

一个异常问题 谢谢 如图

import java.util.*;
public class HelloWorld {
    
    //完成 main 方法
    public static void main(String[] args) {
        
        int[] scores={89,-23,64,91,119,52,73};
        HelloWorld sorts=new HelloWorld();
        getArrays(scores);
        
        
    }
    
    //定义方法完成成绩排序并输出前三名的功能
    
    public static void getArrays(int[] scores){
        Arrays.sort(scores);
        int[] score2=scores;
        int[] score3={0,0,0};
        int cout=0;
        for(int i=score2.length;i>=0;i--){
            if(score2[i]>100&&score2[i]<0)
            continue;
            cout+=1;
            score3[cout-1]=score2[i];
             if(cout>3)
             break;
            
        }
        System.out.println("考试成绩的前三名为:\n"+
        score3[0]+score3[1]+score3[2]);
    }


正在回答

4 回答

这是抛出ArrayIndexOutOfBoundsException异常,也就是说你的数组超出了范围,  for(int i=score2.length-1;i>=0;i--)这里面的score2.length要减1, if(cout>=3)这里面的cout是大于等于3。

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

慕粉3274091 提问者

非常感谢!
2016-05-01 回复 有任何疑惑可以回复我~
#2

葫芦娃3250413 回复 慕粉3274091 提问者

不用客气哒~楼上说的错误也有的昂~
2016-05-02 回复 有任何疑惑可以回复我~

第1行导入Arrays方法

import java.util.Arrays;

第21行:score2[i]>100&&score<0;这个数不存在,应该为或||

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

21行 :这个大于100  并且要小于0 这种数字不存在吧!你改一下试试(||)

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

举报

0/150
提交
取消

一个异常问题 谢谢 如图

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