1. java-hell.de
  2. Themen
  3. Schleifen
Thema 4 von 11

Java Schleifen lernen – Übungen online

Schleifen sind der Moment, in dem Programmieren anfängt, sich nach Superkraft anzufühlen: einmal hinschreiben, hundertmal ausführen. Du baust for- und while-Schleifen, zählst rückwärts und filterst mit Modulo.

Die Übungen

Das lernst du in diesem Thema

  1. Deine erste Schleife
  2. Schleife: Startwert
  3. Countdown
  4. Schleife mit Bedingung
  5. While-Schleife
Übung 1 von 5

Deine erste Schleife

Eine for-Schleife wiederholt Code. Sie hat drei Teile:

for (int i = 0; i < 3; i++) {
    IO.println(i);
}
// Gibt aus: 0, 1, 2
  • int i = 0 — Start bei 0
  • i < 3 — Laufe solange i kleiner als 3 ist
  • i++ — Erhöhe i nach jedem Durchlauf um 1

Ändere die 3 zu einer 5, damit die Zahlen 0 bis 4 ausgegeben werden.

Startcode
void main() {
    for (int i = 0; i < 3; i++) {
        IO.println(i);
    }
}
Hintergrund
Die drei Teile einer for-Schleife

for (init; bedingung; update) — die drei Teile werden zu unterschiedlichen Zeitpunkten ausgeführt:

1. init — einmal am Anfang. 2. bedingung — vor jedem Durchlauf geprüft. 3. update — nach jedem Durchlauf.

Alle drei Teile sind optional. for (;;) ist eine Endlosschleife (wie while(true)).

Übung 2 von 5

Schleife: Startwert

Du kannst den Startwert der Schleife ändern:

for (int i = 5; ...) // Startet bei 5

Ändere den Startwert, damit die Zahlen 1 bis 5 ausgegeben werden.

Ändere nur eine Zahl.

Startcode
void main() {
    for (int i = 0; i <= 5; i++) {
        IO.println(i);
    }
}
Hintergrund
Warum startet man bei 0?

In der Informatik startet man fast immer bei 0 — das kommt daher, dass Array-Indizes Offsets vom Anfang sind. Das erste Element liegt 0 Positionen vom Start entfernt.

Dieses "Off-by-one" Thema (falsch um 1 daneben) ist einer der häufigsten Bugs in der Softwareentwicklung.

Übung 3 von 5

Countdown

Schleifen können auch rückwärts laufen:

for (int i = 10; i >= 1; i--) {
    // i-- bedeutet: i um 1 verringern
}

Die Schleife ist fast fertig. Ersetze ??? durch den richtigen Ausdruck, damit von 5 bis 1 runtergezählt wird.

Startcode
void main() {
    for (int i = 5; i >= 1; ???) {
        IO.println(i);
    }
}
Hintergrund
Inkrement und Dekrement

i++ ist Kurzform für i = i + 1. Es gibt zwei Varianten: i++ (Post-Inkrement) und ++i (Pre-Inkrement). Der Unterschied: int a = i++; speichert erst den alten Wert und erhöht dann. int a = ++i; erhöht erst und speichert dann.

In einer for-Schleife ist der Unterschied egal, weil der Rückgabewert nicht benutzt wird.

Übung 4 von 5

Schleife mit Bedingung

Du kannst ein if innerhalb einer Schleife benutzen — so filterst du Werte.

Die Schleife läuft von 1 bis 10. Ergänze die Bedingung im if, damit nur gerade Zahlen ausgegeben werden.

Tipp: Eine Zahl ist gerade, wenn i % 2 == 0 (kein Rest bei Division durch 2).

Startcode
void main() {
    for (int i = 1; i <= 10; i++) {
        if (???) {
            IO.println(i);
        }
    }
}
Hintergrund
Der Modulo-Operator %

% gibt den Rest einer Division. 7 % 3 = 1 (7 geteilt durch 3 = 2 Rest 1). Damit prüfst du Teilbarkeit: x % n == 0 heißt "x ist durch n teilbar".

Häufige Anwendungen: gerade/ungerade prüfen, Werte "wrappen" (z.B. index % array.length für zyklisches Durchlaufen), oder Uhrzeiten berechnen.

Übung 5 von 5

While-Schleife

Eine while-Schleife läuft, solange die Bedingung true ist:

while (bedingung) {
    // code
}

Die Schleife soll bei 1 starten und bei 3 aufhören. Ergänze die Bedingung.

Startcode
void main() {
    int i = 1;
    while (???) {
        IO.println(i);
        i++;
    }
}
Hintergrund
for vs. while — wann was?

for nutzt du, wenn du vorher weißt, wie oft die Schleife laufen soll (z.B. "5 mal" oder "für jedes Element"). while nutzt du, wenn du das nicht weißt — z.B. "lese Zeilen bis Dateiende" oder "wiederhole bis der User 'exit' eingibt".

Es gibt auch do-while: Wie while, aber der Body läuft mindestens einmal, weil die Bedingung erst am Ende geprüft wird.

Genug gelesen. Jetzt du.

Im Tutorial schreibst du den Code selbst, drückst auf Ausführen und siehst sofort, ob dein Programm stimmt. Kein JDK, keine IDE, kein Bullshit.

Schleifen im Browser üben