Kann Jemand mir erklären wieso immer ein Fehlermeldung kommt?
6 Antworten
Der äußere Schleifenindex i muss hinten stehen:
fistAndLastName[j][i]
Das Array hat nämlich die Länge 2, und jeder Eintrag ist ein String[5].
Hallo Hendrik Pruin,
wie die anderen schon geschrieben haben liegt es an deinem Array..
Lg
Schaumal hier, die Fehlermeldung wird erklärt :
https://www.dpunkt.de/java/Referenz/Das_Paket_java.lang/4.html
das ist es wohl :Die ArrayIndexOutOfBoundsException tritt auf, wenn versucht wird, ein Array mit einem ungültigen Index anzusprechen.
Du gibst dem index 0 bis index 3 Werte. Dein Array ist mit der länge 4 definiert. Du musst die auf 3 setzen. Die Länge des Array [3] ist 4.
Merke dir. Arrays fangen bei 0 an und nicht bei 1. Das weißt du wahrscheinlich auch.
String arr[][] = new String[2][2];
arr[0][0] = "hallo";
arr[0][1] = "moin";
arr[1][0] = "servus";
arr[1][1] = "mahlzeit";
for(int i=0;i<arr.length;++i){
for(int k=0;k<arr[i].length;++k){
System.out.println(arr[i][k]);
}
}
Öhm... wo siehst du da eine Fehlermeldung? In den beiden grünen Zeilen (das sind Kommentare, also kein Code), wo etwas rot unterstrichen ist, schlägt wahrscheinlich eine Rechtschreibprüfung Alarm, weil sie die unterstrichenen deutschen Worte nicht kennt. Kannst ja mal mit der Maus darüber fahren und schauen, ob du dann mehr Informationen kriegst.
Oder halt die Meldungen ignorieren, denn wie du unten siehst, läuft das Programm so wie es soll.
Lass dir mal probeweise in der Schleife (also über der println-Anweisung) jeweils i und j ausgeben. Die Werte sollten wie folgt sein:
0 0
0 1
1 0
1 1
2 0
2 1
und das sind im Prinzip auch die Werte, die dem jeweiligen Element im Array entsprechen. [0, 0] ist Franz, [0, 1] ist Huber und so weiter. Und die werden untereinander ausgegeben.
Also dein Programm macht das, was du da eingegeben hast. Ob es das ist, was es auch soll, ist noch eine zweite Frage. Davon mal abgesehen hat firstAndLastNames nur 2 und nicht 4 Spalten.
also ich habe das so eingegeben
for(int i = 0; i < Daten_von_Patienten.length; i++) {
for(int y = 0; y < Daten_von_Patienten.length; y++) {
System.out.println(i);
System.out.println(y);
und kam auf sowas
0
0
0
1
0
2
0
3
1
0
1
1
1
2
1
3
2
0
2
1
2
2
2
3
3
0
3
1
3
2
3
3
Ja aber Ich habe als Ausgabe nur die erste Spalte bekommen und ich habe 4 Spalten getippt ? 😅