Verständnisproblem bei alternativer For-schleifen Definition

AnnasHund

Grünschnabel
Guten Tag allerseits,

Auf der Suche nach einer Funktion die mir zurück geben soll wie viele Möglichkeiten ein Enum hat (sprich wenn im nachfolgenden Beispiel, wäre die gewünschte Antwort 7, da sieben Tage enthalten sind)
Beispiel:
Code:
public enum Wochentage {
	MONTAG,DIENSTAG,MITTWOCH,DONNERSTAG,FREITAG,SAMSTAG,SONNTAG;
}
bin ich über etwas gestolpert.
Und zwar: Im Internet habe ich einen Code-Schnipsel gefunden und etwas modifiziert:
Code:
private static int anzahlEnums() {
    int i = 0;
    for (Wochentage day : Wochentage.values()) {
        i++;
    }
    return i;
}
Diese Funktion macht auch das was ich möchte. :confused: Ich habe nur keine Ahnung warum die for-Schleife funktioniert, denn ich kenne sie sie nur so:
Code:
for (Initialisierung; Bedingung; Update){
  Anweisung(en);
}

Wäre schön wenn mir das jemand erklären könnte. Danke im voraus.
 
Hi und Willkommen bei tutorials.de :)

Das ist eine andere Schreibweise von for,
bei der irgendetwas mit mehreren Werten (wie ein Array etc.)
komplett durchgegangen wird und der Schleifeninhalt
für jedes Element ausgeführt wird.

Das aktuelle Element kann man (in deinem Beispiel) mit day ansprechen.
Du brauchst das aber nicht, sondern zählst nur..

...
Am Beispiel Array wäre sowas
Java:
int[] array;
...
int i;
for(i = 0; i < array.length; i++)
    System.out.println(array[i]);
das Gleiche wie
Java:
int[] array;
...
for(int aktuell : array)
    System.out.println(aktuell);

Gruß
 

Neue Beiträge

Zurück