2016-03-31 9 views
-1

Ich versuche eine Variable "grainsInSection", eine Doppel, zu meinem Array auch ein Doppel zuzuordnen. Es erlaubt mir das nicht und löst eine Ausnahme aus.Warum erlaubt es mir mein Programm nicht, einem Element meines Arrays einen Wert zuzuweisen?

Leere findGrades() {// Begin 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 
+0

Welche Zeile wirft die Exceptoin? – TinyTheBrontosaurus

+0

Was ist die xeception? –

+0

gradeArray [elementForGrade] = gradeInSection; – BKK03

Antwort

0

prüfen, ob elementForGrade ist nicht> = als gradeArray.length. Meine Vermutung ist, dass es eine Ausnahme außerhalb der Grenzen ist.

Wenn es ein Nullzeiger ist, dann muss der Code

double[] gradeArray = new double[20]; 

oder

gradeArray = new double[20]; 

irgendwo im Code haben (wobei 20 die entsprechende Größe des Arrays). Wenn diese Zeile nicht vorhanden ist, wird der Speicher niemals zugewiesen, was gradeArray als null zurücklässt.

+0

vielen Dank – BKK03

Verwandte Themen