Zum Hauptinhalt springen

Schleifen

Schleifen sind eine Möglichkeit, Anweisungsblöcke wiederholt auszuführen. Eine weitere Möglichkeit sind rekursive Methoden, die sich selbst aufrufen.

while-Schleifen

Bei der while-Schleife wird ein Anweisungsblock (Schleifenrumpf) wiederholt, solange eine Bedingung (Schleifenbedingung) wahr ist. Da die Bedingung zu Beginn jedes Durchlaufs geprüft wird, spricht man von einer kopfgesteuerten Schleife.

MainClass.java
public class MainClass {

public static void main(String[] args) {
int i = 0;
while (i < 10) {
System.out.println(i);
i++;
}
}

}

do/while-Schleifen

Im Gegensatz zur while-Schleife wird bei der do/while-Schleife der Schleifenrumpf immer mindestens einmal ausgeführt, da die Bedingung erst am Ende des Durchlaufs geprüft wird. Daher spricht man von einer fußgesteuerten Schleife.

MainClass.java
public class MainClass {

public static void main(String[] args) {
int i = 0;
do {
System.out.println(i);
i++;
} while (i < 10);
}

}

for-Schleifen

Die for-Schleife ist eine indexgesteuerte Schleife, auch Zählschleife genannt. Der Index legt bereits zu Beginn fest, wie oft die Schleife durchlaufen wird.

MainClass.java
public class MainClass {

public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
}

}

for-each-Schleifen

Mit der for-each-Schleife können Datensammlungen wie Felder und Listen elementweise durchlaufen werden. Dabei können einzelne Elemente verändert werden, jedoch nicht die Struktur der Sammlung selbst (z.B. kein Hinzufügen oder Entfernen von Elementen).

MainClass.java
public class MainClass {

public static void main(String[] args) {
int[] ids = {4, 8, 15, 16, 23, 42};
for (int i : ids) {
System.out.println(i);
}
}

}

Schleifensteuerung

Mit break wird eine Schleife unabhängig von der Bedingung sofort beendet. Mit continue wird der aktuelle Schleifendurchgang abgebrochen und die Schleife mit dem nächsten Durchlauf fortgesetzt.

MainClass.java
public class MainClass {

public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if (i == 6) {
break;
}
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
}

}