# Frage zum Doppelpunkt in einer for Schleife



## Lestas89 (19. Sep 2015)

In dem folgenden Programm wird ein Array erstmal mit Werten gefüllt, das versteh ich. Danach folgt in der for Schleife ein Doppelpunkt. Was genau bewirkt diese for schleife?


```
public class ProgrammLesen {
  public static void main(String[] args) {
  int[] zahlen = new int[10];
  for (int i = 0; i < zahlen.length; i++) {
  zahlen[i] = i * 100;
  }
   
  for (int zahl : zahlen) {
  System.out.print(zahl + " ");
  }
  }
  }
```

Wenn ich das Programm starte werden mir die Elemente des Arrays ausgegeben aber ich verstehe nicht wieso. Vielen Dank im Voraus!


----------



## Tarrew (19. Sep 2015)

Das nennt sich eine for-each Schleife.
Also praktisch "Für jedes Element "zahl" im Array "zahlen" tue ...". In deinem Fall einfach nur ausgeben.

Eine äquivalente normale for-Schleife wäre:

```
for(int i = 0; i<zahlen.length; i++){
   System.out.println(zahlen[i] + " ");
}
```


----------



## Lestas89 (19. Sep 2015)

Danke für deine Antwort Tarrew! In der for each Schleife wird ja ein int zahl definiert. Was steckt dann genau in int zahl wenn zahlen die Elemente des Arrays darstellen?

Edit: Sorry, habs jetzt begriffen.


----------



## Lestas89 (19. Sep 2015)

Wie kann ich das denn in diesem Fall mit einer for Schleife machen? Also wenn ich ein String Array habe

```
String[] tage = { "Mo", "Di", "Mi", "Do", "Fr", "Sa", "So" };
  for (String tag : tage) {
  System.out.print(tag + " ");
```

Denn hier bekomme ich einen Fehler:


```
public class ProgrammLesen {
  public static void main(String[] args) {
  String[] tage = { "Mo", "Di", "Mi", "Do", "Fr", "Sa", "So" };
  for (int j; j < tage.length; j++) {
  System.out.print(tage[j] + " ");



  }
  }
  }
```

Edit: Hatte vergessen den Index zu initialisieren


----------



## Thallius (19. Sep 2015)

Aus diesem Grund haben schönere Sprachen die Syntax


```
for ( User *user in Users)
```

SCNR

Claus


----------

