Frage von mikasayoo, 66

Hallo, das ist meine erste Frage hier auf dieser Seite und ich hoffe, ich bekomme Hilfe hier?

Ich hab vor kurzem ein Programm in Java geschrieben und zwar

    char[] characters = new char [100];
    int[] integers = new int [200];
    for (int i = 0; i < integers.length; i++) {
    characters[i] = 'a';
    integers[i] = 1;
}

und egal was ich im Programm ändere kriege ich diese Meldung Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: kann mir jemand bitte dabei helfen ? wo liegt mein Fehler im Programm ?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von KnusperPudding, Community-Experte für Java, 23

wo liegt mein Fehler im Programm ?

In deiner Schleife.

deine char-array characters hat eine Länge von 100. Hier kannst du Werte von:

characters[0];

bis

characters[99];

(Index zählt den ersten wert bei 0)  zuweisen. 

Versuchst du nun auf Einträge höher als 99 zuzuweisen (oder abzufragen), ist damit die größe der Array überschritten, was zwangsläufig passiert, wenn du in deiner Schleife Werte bis 199 zuweisen möchtest.

Da in deinem Fall die array: integers viel größer ist. um 100 genau zu sein.

Also wäre es ratsam wenn du beide Arrays gleichgroß machst.

Kommentar von mikasayoo ,

Yooo habs wieder programmiert und jetzt frage ich mich, was für eine dumme frage war das xD
Auf jeden fall vielen dank für die Antwort und die super erklärung, hast mir wirklich geholfen :)

Kommentar von KnusperPudding ,

Freut mich. Viel Spass beim weiterschrauben =)

Antwort
von slutangel22, 44

`char` hat nur 100 entries, der loop geht über 200, crash. "Array index out of bounds" halt.

Kommentar von mikasayoo ,

also wenn ich statt 200 ein zahl kleiner als 100 schreibe wird alles in ordnung sein ?

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten