Я пишу программу для расчета среднего балла и распечатки стенограммы. У меня возникли некоторые проблемы с методами, которые я создал, чтобы получить сумму семестров в год. Вот соответствующий код:
double sumGP;
ArrayList<Double> semesterGPs = new ArrayList<Double>();
public void getGPs(double aGP) {
semesterGPs.add(aGP);
}
public double getTotalGP() {
for(int i = 0; i <= this.semesterGPs.size(); i++)
sumGP = sumGP + this.semesterGPs.get(i);
return sumGP;
Вот те блоки кода, которые используются в основном методе, а также соответствующий основной код метода:
Scanner letterGrade = new Scanner(System.in);
System.out.print("Enter the letter grade recieved if the course is completed, otherwise enter null: ");
aLetterGrade = letterGrade.next();
if ((aLetterGrade.contentEquals("a")) || (aLetterGrade.contentEquals("A"))) {
double aGPRecieved = 4.0;
//gradePoints.add(aGPRecieved);
aSemesterGrade.getGPs(aGPRecieved);
aTotals.getGPs(aGPRecieved);
System.out.println(aGPRecieved);
}
aSemesterGrade.getTotalGP();
Мой цикл for продолжает выдавать ошибку индекса вне границ:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 1 out of bounds for length 1
at java.base/jdk.internal.util.Preconditions.outOfBounds(Unknown Source)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Unknown Source)
at java.base/jdk.internal.util.Preconditions.checkIndex(Unknown Source)
at java.base/java.util.Objects.checkIndex(Unknown Source)
at java.base/java.util.ArrayList.get(Unknown Source)
at realGPA/realGPA.SemesterGrades.getTotalGP(SemesterGrades.java:50)
at realGPA/realGPA.MainController.main(MainController.java:186)
Я уже распечатал информацию из ArrayList "semesterGPs", поэтому я знаю, что метод на самом деледобавив информацию в список, даже две или три записи. Я очень озадачен, почему индекс выходит за границы.