# erweiterte for Schleife für Arrays



## Neuer (9. Feb 2011)

Hallo,

ich versuche momentan verzweifelt die Funktionsweise der erweiterten for-Schleife mit Arrays zu verstehen. Ich weiß, dass diese Schleife nicht in das Feld schreiben kann und den gesamten Index von null bis Ende abläuft. Aber wie genau funktioniert diese Schleife, die Tutorials unter Google habe ich gelesen, aber nicht ganz verstanden.

Mein Beispielprogramm:


```
public class quellcode 
{
	public static void main(String[] args) 
	{
		int[] zahl = new int[3];
		zahl[0] = 3;
		zahl[1] = 6;
		zahl[2] = 9;
		
		for(int n: zahl)
			System.out.println(n);


	}

}
```


----------



## chalkbag (9. Feb 2011)

Im Prinziep kannst du dir das so vorstellen

Zuerst wird ein iterartor von der Liste angefordert/erstellt.

also Liste.getIterartor()

Anschließend wird in einer While Schleife solange Iterartor.nextElement() aufgerufen, solange Iterator.hasNext() true zurückliefert.

nochmal im pseudocode

Iterator i = Liste.getIterartor();

item = null;
while(i.hasNext()) {

item  = i.getNext();

}


----------



## Andi_CH (9. Feb 2011)

Öh und was ist nun genau deine Frage?

Das "n" bekommt einfach nach und nach jeden Wert der im Array ist.
Oder anders gesagt die Werte der einzelnen Arrayfelder werden Einer nach dem Anderen in n kopiert.

War es das?


----------



## Neuer (9. Feb 2011)

Im Prinzip habe ich es jetzt verstanden, danke. Dann war mein Gedanke davor auch schon richtig, aber wieso sagt mir Eclipse dann, das mein Quellcode falsch ist? Habe JRE6 genutzt.

Folgende Fehlermeldung erscheint:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	Syntax error, 'for each' statements are only available if source level is 1.5

	at quellcode.main(quellcode.java:11)


----------



## SlaterB (9. Feb 2011)

http://www.java-forum.org/java-basi...day-must-defined-its-own-file.html#post728315


----------



## Andi_CH (9. Feb 2011)

Wenn du schon so elegante Loops verwendest ....


```
int[] zahl = {3, 6, 9};
	for(int n: zahl)
		System.out.println(n);
```


----------



## Neuer (9. Feb 2011)

Danke, war zwar richtig eingestellt mit JRE6, aber Eclipse hat das wohl nicht richtig erkannt. Neuinstallation hat geholfen


----------

