Fehlermeldung / Arrays, Enhanced For Loops

TheMenox

Aktives Mitglied
Guten Tag Leute,
habe ein kleines Problem mit Arrays und enhanced for Loops:
habe folgenden Code aus einem Tutorial abgeschrieben
Java:
int[] zahlenArray2 = {3,4,5,6,7};
for (int durchlauf:zahlenArray2)
    System.out.println(zahlenArray2[durchlauf]);
erhalte beim ausführen jedoch das hier:
Code:
6
7
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
    at de.JavaStart.de.ArraysEnhancedForLoops.main(ArraysEnhancedForLoops.java:21)
Verstehe jetzt nicht ganz, was das soll, und wie ich das beheben kann
Würde mich über Hilfe freuen

Edit: Ach ja, ich benutze Eclipse, falls das hilft
 
Zuletzt bearbeitet:
Weil du den Inhalt als Index benutzt, um noch mal auf den Inhalt zuzugreifen. Ganz einfach, oder?

Und in deinem Fall beginnen die Noten eben erst bei 3. zahlenArray2[3] liefert dir dann eine 6.
 
du überschätzt auf jeden Fall meine Java Kenntnisse...
wie kommen denn dann die werte 6 und 7 zustande, die ausgegeben werden?
 
Vor for each-Schleife hätte man das so geschrieben:
Java:
        int[] zahlenArray2 = {3, 4, 5, 6, 7};
        for (int i = 0; i < zahlenArray2.length; i++) {
            System.out.println("i = " + i);
            System.out.println("zahlenArray2[i] = " + zahlenArray2[i]);
            System.out.println("zahlenArray2[zahlenArray2[i]] = " + zahlenArray2[zahlenArray2[i]]);
        }

Einfach mal durchlaufen lassen.
 
Was soll mir das denn sagen, wenn ich das durchlaufen lasse? Bin grad glaub ich n bisschen Brain AFK...
Macht ja nichts, hatte das auch nicht irgendwie persönlich genommen oder so ^^
 
Zuerst gibt er den Index aus,
dann gibt er den Wert an den mit Index aus,
dann gibt er den Wert des Werts des Indexs aus,
dann wird der Index um 1 'vergrößert' und der Schleifendurchlauf beginnt neu.
 
ich glaube, dass würde jetzt zu weit gehen und mich nur verwirren
es reicht denke ich erst mal, dass ich jetzt weiß, was das Problem war und warum ^^

Edit: okay habe jetzt auch verstanden, was du mir mit dem Code zeigen wolltest und warum man deswegen nicht so schreiben kann
 
Ok....

Untitled Diagram.png

Das beschriebt das.... (seltsame Aussage, aber damit sollte es verständlicher sein für dich)

🙂
 

Zurück
Oben