Elemente in einem 2D-Array summieren

JavaKev

Mitglied
Hallo, ich habe folgende Aufgabe bekommen: Erstellen Sie eine Funktion 'sumOfRowThree', welche die Summe der dritten Zeile eines 2D-Arrays 'x' aus Double-Werten zurückliefert.

Nun habe ich folgenden Code geschrieben:
Java:
public double sumOfRowThree(double[][] x){
   double sumRow = 0.0;
   for (int i = 0; i < x.length; i++) {
       sumRow += x[2][i];
   }
   return sumRow;
}

Das Problem ist nun das der Code bei dem Beispiel
{ { 1., 1., 1. }, { 2., 2., 2. }, { 3., 3., 3. } } richtig funktioniert, nur leider bei dem Beispiel { {1., 2.}, {1., 2.}, {1., 2.} } eine "ArrayOutOfBoundsException" auswirft. Ich habe schon auf einem Blatt Papier versucht nachzuvollziehen wo der Fehler liegen könnte, habe aber nichts gefunden. Meiner Meinung nach müsste der Code laufen. Kann mir jemand auf die Sprünge helfen?
 
Das liegt daran dass du ein Array von Arrays hast 😉 Das Hauptarray hat länge 3 und deine Arrays in dem Array haben Länge 2 😉

Java:
public double sumOfRowThree(double[][] x){
   double sumRow = 0.0;
   for (int i = 0; i < x[2].length; i++) {
       sumRow += x[2][i];
   }
   return sumRow;
}
So sollte es gehen.
 
Das liegt daran dass du ein Array von Arrays hast 😉 Das Hauptarray hat länge 3 und deine Arrays in dem Array haben Länge 2 😉

Java:
public double sumOfRowThree(double[][] x){
   double sumRow = 0.0;
   for (int i = 0; i < x[2].length; i++) {
       sumRow += x[2][i];
   }
   return sumRow;
}
So sollte es gehen.
aber mit x[2] sag ich ihm doch das er im dritten Element nachschauen soll und dann durch das i geht er diese elemente doch durch und summiert sie oder etwas nicht? 🙁
 
Also deine Schleife läuft mit x[2].length nur solange bis i nicht mehr echt kleiner ist als x[2].length, das ist nur die Abbruchbedingung für deine Schleife
 
Also du musst bei einer „Matrix“ aufpassen 😉 Du hast ein Array welches eine .length Methode besitzt. Dieses Array enthält wiederum Arrays die ebenfalls .length Methoden haben 😉 Bei einer quadratischen Matrix wäre es trivial welche length du nimmst, jedoch ist deine Matrix nicht quadratische, weshalb du eine OutOfBounds Exception bekommen hast 😉
 

Neue Themen


Zurück
Oben