这是一段录入成绩并分析的代码 但是怎么可以录入成绩但后面的运行不出来

import java.util.Scanner; //引入键盘输入函数
public class Demo2 {
public static void main(String[] args) {

Scanner sc=new Scanner(System.in); //实例化键盘输入

    int [] score = new int [5];                                                         //生成并实例化数组
    String [] name = new String[] {"流星","夏雨","夏雪"};
    String [] classs =new String[] {"语文","数学","英语","物理","化学","生物"};

    int sum=0;
  //int Arravge=0;
    int max,min;
    int b=0;
    String luru;
    do {
        //继续录入成绩循环体
        do {                                                                                //人员选择录入限制循环体
            System.out.println("请选择录入1 流星、2 夏雨、3夏雪的成绩:");
             b = sc.nextInt();
            if(b<0||b>3)
                System.out.println("暂无该学员! 请输入已有学院代码");
        }while(b<0||b>3);

        for(int i=0;i<6;i++) {                                                          //成绩录入 
            System.out.println("请输入第"+name[b-1]+"的"+classs[i]+"课的成绩:");
            score[i]=sc.nextInt();
            sum=sum+score[i];                                                                   //求和
        }
        System.out.println("五科成绩的总和:"+sum);
        System.out.println("五科成绩的平均分:"+sum/6);

        max = score [0];                                                                
        min = score [0];
        for(int i=1;i<6;i++) {                                                          //求最大值和最小值
            if(score[i] > max) {                                                            //最大值
                max = score[i];                                                             
            }
            if(score[i]<min) {                                                              //最小值
                min=score[i];
            }
        }
        System.out.println("最好科目为:"+max+"\n最弱科目是:"+min);
        System.out.println("五科成绩的总和:"+sum);
        System.out.println("五科成绩的平均分:"+sum/6);

        do {                                                                                //结束 限制客户只输输入Y/N
            System.out.println("是否还想继续录入呢 \n继续Y 不继续N");
            luru = sc.next();                                                                       //键盘输入luru的值

            if(luru.equals("Y"))                                                                        //判断客户输入的是否是Y/N
                break;
            else {
                if(luru.equals("N"))
                    break;
                else {
                    System.out.println(" 输入错误!   请输入有效值");
                }
            }
        }while( b >0 ) ;
    }while(luru.equals("Y"));

    System.out.println("感谢您的使用!");

}

https://blog.csdn.net/Reborn_Lee/article/details/82082201

这段代码运行后汇报数组越界异常的,并不是后面不执行,而是运行时异常了:
图片说明

定位 29 行的数组越界,然后找到根源是 score 长度初始为 5 ,而遍历循环长度 为 6.

score数组长度应该为6,int [] score = new int [6];