Eine Bedingung stellt eine Frage, auf die es nur wahr oder falsch gibt, und lässt davon abhängen, was als Nächstes passiert.
- Bedingung
Eine Prüfung, die wahr oder falsch ergibt und darüber entscheidet, welcher Abschnitt Code ausgeführt wird.
Beispiel: „Die Bedingung prüft, ob der Warenkorb die Freigrenze erreicht, und blendet die Versandkosten entsprechend ein.“Auch: Verzweigung, If-Abfrage.
Abgrenzung zur Mehrfachverzweigung: Wo derselbe Wert gegen viele Fälle geprüft wird, ist eine switch-Anweisung übersichtlicher als eine Kette von Bedingungen.
Wie sie aufgebaut ist
Auf das Schlüsselwort folgt die Prüfung, dann der Abschnitt, der bei wahr läuft. Optional folgt ein zweiter Abschnitt für den Fall falsch. Was geprüft wird, ist am Ende immer ein Wahrheitswert.
Mehrere Fälle lassen sich aneinanderreihen. Geprüft wird dann von oben nach unten, und sobald eine Prüfung zutrifft, läuft nur dieser Zweig. Die Reihenfolge entscheidet also mit, und bei überlappenden Fällen gewinnt der erste.
if (summe >= VERSANDFREI_AB) {
versandkosten = 0;
} else if (istSperrgut) {
versandkosten = 39.9;
} else {
versandkosten = 4.9;
}
Der Zweig, an den keiner gedacht hat
Eine Bedingung deckt die Fälle ab, die beim Schreiben im Kopf waren. Was fehlt, fällt stillschweigend durch. Wenn ein Wert leer ankommt, obwohl das nicht vorgesehen war, greift keine Prüfung, und das Programm macht etwas Beliebiges.
Deshalb gehört zu jeder Kette aus Bedingungen die Frage, was passiert, wenn keine zutrifft. Oft ist der letzte Zweig ohne Prüfung die richtige Antwort, manchmal eine Fehlermeldung.
Die Kurzform für einfache Fälle
Wo nur zwischen zwei Werten gewählt wird, gibt es eine Schreibweise in einer Zeile: Prüfung, Fragezeichen, Wert bei wahr, Doppelpunkt, Wert bei falsch. Sie heißt ternärer Operator, weil sie drei Teile verbindet.
Für eine Zuweisung ist das übersichtlich. Sobald mehrere davon ineinander geschachtelt werden, kippt es ins Unleserliche; dann ist die ausgeschriebene Form die bessere Wahl.