为什么我的程序不允许我为数组的其中一个元素赋值?

Why does my program not allow me to assign a value to one of the elements of my array?

我正在尝试为我的数组分配一个双精度变量 "gradesInSection",也是一个双精度变量。它不允许我这样做并抛出点异常。

void findGrades() {//开始查找成绩

    Scanner grades = new Scanner(System.in);
    System.out.println("\nHow many grades do you have?");
    numOfGrades = grades.nextInt();  

    while (numOfGrades > 0)
    {
        numOfGrades = numOfGrades - 1;
        elementForGrade = elementForGrade + 1;

        System.out.println("\nGrade " + elementForGrade + ":");
        Scanner whatGrade = new Scanner(System.in);
        gradesInSection = whatGrade.nextDouble();

        gradeArray[elementForGrade] = gradesInSection;
    }

    for (int i = 0; gradeArray.length > i; i++)
    {
        finalGradeOfSection = gradeArray[i] + finalGradeOfSection;
    }

    finalGradeOfSection = finalGradeOfSection/numOfGrades;

    System.out.println(finalGradeOfSection);

}//End find Grades

检查 elementForGrade 是否大于等于 gradeArray.length。我的猜测是这是一个越界异常。

如果是空指针,那么代码需要有

double[] gradeArray = new double[20];

gradeArray = new double[20];

代码中的某处(其中 20 是数组的适当大小)。如果此行不存在,则永远不会分配内存,将 gradeArray 保留为 null