Kontrollstrukturen
Ziele
- Ich weiss, was eine bedingte Anweisung ist und kann sie korrekt anwenden.
- Ich kann eine Schleife programmieren:
for
,foreach
,while
unddo-while
. - Ich kenne die
switch
-Anweisung. - Ich kenne den ternären (ternary) Operator
Einführung
Kontrollstrukturen steuern den Ablauf eines Programms. Sie ermöglichen es, bestimmte Codeabschnitte nur unter bestimmten Bedingungen auszuführen (→ bedingte Anweisungen) oder mehrfach zu wiederholen (→ Schleifen).
Bedingte Anweisungen
Eine bedingte Anweisung ist eine Konstruktion, mit der ein Programm – abhängig vom Wahrheitswert eines booleschen Ausdrucks – unterschiedliche Wege gehen kann.

System.out.println(...)
. Ein Anweisungsblock ist ein Codeblock mit { ... }
, der mehrere Anweisungen enthalten kann.If-Statement
|
|
Ist der Ausdruck expression
in der Klammer true
, wird der Codeblock ausgeführt. Andernfalls wird er übersprungen.
If-Else-Statement
Der obige if
-Fall kann mit dem Schlüsselwort else
erweitert werden, um alternative Aktionen auszuführen, wenn der Ausdruck false
ist:
|
|
Im folgenden Beispiel gibt das Programm je nach Wert von num
(gerade oder ungerade) unterschiedlichen Text aus. Da eine
Zahl nur gerade oder ungerade sein kann, wird nur eine der beiden Ausgaben gemacht.
Beispiel:
|
|
Else-If-Kette
Ein Else-Statement kann durch ein If-Statement erweitert werden.
|
|
Beispiel:
|
|

Beachte, dass bei einem if
oder else-if
alle nachfolgenden else
oder else-if
ignoriert werden, wenn die
expression
wahr ist.
Würde das else if (dollars < 100_000)
vor dem else if (dollars < 2000)
kommen, würde es nie eine Ausgabe Buy a personal computer
geben, da eine Zahl kleiner 2000 immer auch kleiner als 100'000 ist.
Jetzt bist du dran. Löse bitte die folgenden
Aufgaben in den Labs.

Wenn du dir die Erklärung noch mit einem Video anschauen möchtest, empfehlen wir dir dieses Video.
Switch-Anweisung
Die switch
-Anweisung prüft den Wert einer Variablen auf mehrere mögliche Fälle.
|
|
Ohne break
wird in den nächsten Fall „hineingefallen“ (fall-through). Der default
-Fall wird ausgeführt, wenn kein anderer Fall zutrifft.
Seit Java 12 sind auch die folgenden Schreibweisen möglich:
|
|
Switch mit Rückgabe:
|
|
Ternärer (Ternary) Operator

Ternär bedeutet „drei-teilig“. Ein ternärer Operator hat:
- eine Bedingung,
- einen Wert, wenn sie
true
ist, - einen Wert, wenn sie
false
ist.
Mit dem ternären Operator kannst du kurz und elegant eine Bedingung mit Rückgabe formulieren:
bedingung ? wertWennTrue : wertWennFalse
Beispiel:
|
|
Verschachtelter Ternary Operator:
|
|

if-else
-Struktur.
Jetzt bist du dran. Löse bitte die folgenden
Aufgaben in den Labs.
Schleifen (Loops)
Mit Schleifen können Anweisungen wiederholt ausgeführt werden.
While-Schleife
Bei der while-Schleife wird die nachfolgende Anweisung oder der nachfolgende Anweisungs-Block solange ausgeführt, bis die Bedingung nicht mehr erfüllt ist. Falls die Bedingung bereits vor der ersten Prüfung nicht erfüllt ist, wird die nachfolgende Anweisung oder der nachfolgende Anweisungs-Block nie ausgeführt.
|
|
Beispiel:
|
|
Do-While-Schleife
Die do-while-Schleife funktionert gleich wie die while-Schleife mit dem Unterschied, das die Anweisung oder der Anweisungs-Block mindestens einmal ausgeführt wird, bevor die Bedingung überprüft wird.
|
|
Diese Schleife wird mindestens einmal ausgeführt.
For-Schleife
Bei der for-Schleife wird ein Wert initialisert, die Bedingung überprüft und wenn die Bedingung erfüllt ist, wird die nachfolgende Anweisung oder der nachfolgende Anweisungs-Block ausgeführt und der Wert kann über Anweisungen modifiziert werden.
|
|
Beispiel:
|
|
Bei diesem Beispiel wird System.out.print(i + " ");
für alle Zahlen i
von 0 bis 9 ausgeführt.
For-Each-Schleife
Wenn du eine Liste oder Array hast, kannst du mit der for-each-Schleife für jedes Element in der Liste oder dem Array eine Anweisung oder einen Anweisungs-Block ausführen. Was Listen und Arrays sind, wirst du in einen späteren Kapitel noch kennenlernen.
|
|

for-each
-Schleife verwenden, wenn du nicht den Index brauchst, sondern einfach über alle Elemente einer Liste oder eines Arrays gehen willst.
Wenn du dir die Erklärung noch mit einem Video anschauen möchtest, empfehlen wir dir dieses Video (YouTube).
Jetzt bist du dran. Löse bitte die folgenden
Aufgaben in den Labs.