为什么我的程序不允许我为数组的其中一个元素赋值?
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
我正在尝试为我的数组分配一个双精度变量 "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