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

时间:2016-03-31 03:18:37

标签: java arrays while-loop elements

我正在尝试为我的数组分配一个变量“gradesInSection”,一个double,一个double。它不允许我这样做并抛出一个点异常。

void findGrades()     {//开始使用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

1 个答案:

答案 0 :(得分:0)

检查elementForGrade不是> =而不是gradeArray.length。我的猜测是,这是一个超出范围的例外。

如果它是空指针,则代码需要

^

$

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