Code-Problem java.lang.ArrayIndexOutOfBoundsException: 4 - Was ist das Problem?

5 Antworten

for(int i = 1; i <= T * 2; i++)

Die Indizierung eines Array beginnt bei 0 und endet folglich bei n-1, also bei einer Größe von 2T bei 2T-1. Der Index 2T ist out of bounds.

KeskorianHD 
Fragesteller
 02.11.2018, 20:18

jo danke. ist mir auch Grad aufefallen

0

Entschuldige dafür. Hier nochmal der Code mit Tabs.

public static void main(String args[])
{

int T = 2;
boolean[] pass = new boolean[T*2];
int[] Marks = {80, 80, 70, 60};
if(1 <= T && T <= 10) {
for(int i = 1; i <= T * 2; i++) {
if(80 < Marks[i] && Marks[i] <= 100) {
pass[i] = true;
}
else {
pass[i] = false;
}
}
}
}

Wenn das Programm versucht, auf eine Index-Stelle zuzugreifen die negativ oder größer als der Array selbst ist, wird dieses Exception geworfen.

Dabei sei zu beachten, dass der Index eines Arrays mit 0 beginnt.

0 -> 1. Indexeintrag
1 -> 2. Indexeintrag
2 -> 3. Indexeintrag
...

Nun viel Glück beim Finden des Fehlers. Das sind alle Infos, die Du dafür brauchst.

EDIT: Okay, Du hast es anscheinend schon gelöst... Super

Ich hab den Fehler gefunden.

Der Array für Marks waren vier zahlen. Aber in der For Schleife hieß es T*2 zählt also hoch bis vier nicht 3 (0,1,2,3) man hängt einfach nur noch ein -1 an das T*2 und das wars schon. Danke trotzdem.

AlexByJava  02.11.2018, 20:23

Sehr gut, aber keine Angst: Dieser Fehler passiert häufig, aber ist einfach zu finden & zu lösen.

0

Der Fehler ist in zeile 21, ich kann aber mit diesem Code snippet nicht sagen welches zeile 21 ist.

Woher ich das weiß:Hobby – Grundlegendes Coding Wissen