Java/Android-Grundlagen: Schleifen

Java/Android-Grundlagen: Schleifen

Heute geht’s mal wieder um Grundlagen. Wir schauen uns Wiederholungen in Java.

Es gibt im Wesentlichen drei verschiedene Wiederholungen, auch Schleifen genannt. Es gibt die zählergesteuerten, die kopfgesteuerten und die fußgesteuerten Schleifen.

Zählergesteuerte Schleife

Wenn etwas genau x mal wiederholt werden soll, verwendet man eine zählergesteuerte Schleife. Das heißt, das wir haben eine Variable, die wir einfach hochzählen. Hier ein Beispiel:

for (int i = 1; i <= 5; i++) {
    //mach irgendwas
}

Die Variable, mit der wir hochzählen, ist i. Wir starten bei 1 und hören bei 5 auf. Dazu verwenden wir das Schlüsselwort „for“. Dann geben wir drei Argumente an. Das erste dient dazu i zu deklarieren. Wir sagen i soll vom Typ int sein, also eine ganze Zahl. Außerdem setzen wir i auf den Startwert, also auf 1. Das zweite Argument gibt an, wie lange die Schleife laufen soll. In unserem Beispiel solange wie i kleiner oder gleich 5 ist. Und im dritten Argument zählen wir i schrittweise hoch. Nach jedem Durchlauf soll i um 1 hochgezählt werden. Das erreichen wir mit i++. Unsere Schleife wird also 5x durchlaufen.

Kopfgesteuerte Schleife

Wenn etwas so oft wiederholt werden soll, solange eine bestimmte Bedingung gilt, verwendet man eine kopfgesteuerte Schleife. Dabei steht die Bedingung am Anfang der Schleife. Hier ein Beispiel:

int i = 0;
Random random = new Random();
while (i != 3) {
i = random.nextInt(5);
//mach irgendwas
}

Wir definieren eine Variable i und setzen sie auf 0. Dann initialisieren wir den Zufallsgenerator. Und nun beginnt die Schleife. Die soll solange durchlaufen werden, wie i nicht 3 ist. Innerhalb der Schleife ändern wir das i, und zwar zufällig. Wir erzeugen eine zufällige Zahl zwischen 0 und 5. Das wird so lange wiederholt, bis i irgendwann 3 ist. Dann ist die Bedingung am Anfang der Schleife nicht mehr wahr, und die Schleife wird beendet.

Fußgesteuerte Schleife

Die fußgesteuerte Schleife ist der kopfgesteuerten Schleife sehr ähnlich. Der Unterschied besteht darin, dass bei der fußgesteuerten Schleife die Bedingung am Ende steht. Die Schleife wird also mindestens einmal durchlaufen, weil die Bedingung eben erst am Ende steht. Hier ein Beispiel:

int i;
Random random = new Random();
do {
    i = random.nextInt(5);
    //mach irgendwas
} while (i != 3);

Wie bei der kopfgesteuerten Schleife definieren wir eine Variable i. Dann initialisieren wir den Zufallsgenerator. Und nun beginnt die Schleife. Die wird mindestens einmal durchlaufen. Innerhalb der Schleife ändern wir wieder das i, und zwar zufällig. Wir erzeugen immer wieder eine zufällige Zahl zwischen 0 und 5. Und nach jedem Durchgang wird die Bedingung geprüft. Sobald i nicht mehr ungleich 3 ist, oder einfacher gesagt, sobald i = 3 ist, beendet die Schleife.

Iterieren über eine Liste

Eigentlich keine echte Schleife, aber so ähnlich, ist das Iterieren über eine Liste. Wir haben also eine Liste und wollen mit jedem Element der Liste etwas machen, schön nacheinander. Das nennt man „iterieren“. Hier ein Beispiel:

protected void test() {
    List<String> names = new ArrayList<>();
    names.add("Alex");
    names.add("Jan");
    names.add("Chrissi");
    names.add("Sabine");
    names.add("Bianca");
    for (String name : names) {
        //mach irgendwas
    }
}

Wir definieren eine Liste mit dem Namen „names“. Sie ist vom Typ ArrayList und enthält Vornamen, die wiederum alle vom Typ String sind, also Texte. Dann fügen wir dieser Liste beispielhaft irgendwelche Namen hinzu. Das machen wir mit names.add(„…“). Dann kommt die Schleife. Mit dem Schlüsselwort „for“ können wir über diese Liste iterieren. Dazu geben wir den Typ des einzelnen Wertes an und dazu einen Variablennamen, den wir innerhalb der Schleife verwenden wollen, also in unserem Beispiel „String name“. Dann schreiben wir einen Doppelpunkt und dahinter den Namen der Liste, die wir durchgehen wollen. Innerhalb der Schleife können wir dann „name“ verwenden. Diese Variable enthält dann nacheinander die Elemente aus unserer Liste, also „Alex“, „Jan“, „Chrissi“, „Sabine“ und „Bianca“.

Wenn Du dazu noch Fragen hast, schreib mich einfach unten rechts über die Chat-Funktion an. 🙂