Informatik

Bedingungen beim Programmieren einfach erklärt

Bedingungen beim Programmieren einfach erklärt
Bedingungen beim Programmieren einfach erklärt
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Eine Bedingung ist eine prüfbare Aussage. Ihr Ergebnis ist entweder wahr oder falsch. Ein Programm nutzt dieses Ergebnis, um einen passenden Codepfad auszuwählen oder eine Schleife fortzusetzen.

Auf dieser Seite lernst du, Bedingungen zu formulieren, Programmzweige vorherzusagen und typische Fehler zu vermeiden.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Von einer Aussage zur Entscheidung

Stell dir eine Heizung vor: Liegt die Temperatur unter 20 Grad, soll sie eingeschaltet werden. Das Programm prüft dazu die Aussage Temperatur < 20.

Definition

Bedingung

Eine Bedingung ist ein Ausdruck, der als wahr oder falsch ausgewertet wird. Dieses Ergebnis heißt auch boolescher Wert oder Wahrheitswert.

Bei Temperatur = 17 ist Temperatur < 20 wahr. Bei Temperatur = 22 ist die Bedingung falsch.

Beispiel

Der Programmplan lautet:

  1. Prüfe Temperatur < 20.
  2. Ist die Bedingung wahr, schalte die Heizung ein.
  3. Ist sie falsch, überspringe diese Anweisung.
  4. Fahre danach mit dem Programm fort.

Für Temperatur = 17 wird die Heizung eingeschaltet. Für Temperatur = 22 wird die Anweisung übersprungen.

Eine Bedingung wird bei jedem erneuten Erreichen wieder geprüft. Ändert sich die Temperatur, kann dasselbe Programm beim nächsten Durchlauf anders reagieren.

Teste dich
Frage 1 von 2LeichtWelches Ergebnis hat Temperatur < 20 für Temperatur = 18?
Lösung: wahr — Setze den aktuellen Wert ein: 18 < 20 ist wahr.
Frage 2 von 2MittelZuerst ist Punktzahl = 7, später Punktzahl = 12. Was geschieht mit der Bedingung Punktzahl >= 10, wenn sie jeweils neu geprüft wird?
Lösung: Sie ist zuerst falsch und später wahr. — Für 7 ist die Mindestgrenze 10 nicht erreicht. Für 12 ist sie erreicht.
Vergleiche richtig formulieren

Vergleichsoperatoren stellen zwei Werte einander gegenüber:

BedeutungOperatorBeispiel
größer als>x > 5
kleiner als<x < 5
größer oder gleich>=x >= 5
kleiner oder gleich<=x <= 5
gleich==x == 5
ungleich!=x != 5

In vielen textbasierten Programmiersprachen bedeutet = eine Zuweisung: Eine Variable erhält einen Wert. Der Vergleich auf Gleichheit wird dort mit == geschrieben. Die genaue Schreibweise hängt jedoch von der Programmiersprache ab.

Merke

Frage dich vor dem Programmieren: Will ich einer Variable einen Wert geben oder zwei Werte vergleichen?

Beispiel

Für Alter = 21 wird Alter >= 18 geprüft.

  • 21 ist größer als 18.
  • Die Grenze 18 wäre durch >= ebenfalls eingeschlossen.
  • Die Bedingung ist deshalb wahr.

Das Programm kann nun den Codepfad für volljährige Personen auswählen.

Lückentext

Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.

Der Ausdruck `Punkte 10 schließt den Wert 10 ein. Für Punkte = 10` ist er deshalb . Mit `Punkte 10` wird geprüft, ob der Wert genau 10 beträgt.

Lösungen: Lücke 1: >=; Lücke 2: wahr; Lücke 3: ==. >= bedeutet „größer oder gleich“. == ist in vielen Sprachen der Gleichheitsvergleich.
Mit if und else zwei Wege auswählen

Eine bedingte Anweisung führt einen Codeabschnitt nur aus, wenn ihre Bedingung wahr ist. Häufig wird dafür if verwendet. Ein optionaler else-Zweig beschreibt den anderen Fall.

Definition

Verzweigung

Eine Verzweigung teilt den Programmablauf in alternative Pfade. Bei einer if-else-Verzweigung wird genau einer der beiden Zweige ausgeführt.

Ein sprachunabhängiger Programmplan kann so aussehen:

  1. Falls Passwort_eingegeben == Passwort_gespeichert, führe anmelden aus.
  2. Sonst führe Zugriff_verweigern aus.
  3. Setze das Programm nach der Verzweigung fort.
Beispiel

Gegeben sind Passwort_gespeichert = 4821 und Passwort_eingegeben = 4821.

Der Vergleich 4821 == 4821 ist wahr. Deshalb wird anmelden ausgeführt. Zugriff_verweigern wird nicht ausgeführt.

Bei Passwort_eingegeben = 4812 wäre der Vergleich falsch. Dann würde das Programm den else-Zweig mit Zugriff_verweigern wählen.

Ohne else gibt es keinen alternativen Codeblock. Bei einer falschen Bedingung setzt das Programm seine Ausführung nach der if-Anweisung fort.

Teste dich
Frage 1 von 2MittelEin Programm prüft Temperatur > 20. Bei wahr gibt es „warm“, sonst „nicht warm“ aus. Welche Ausgabe entsteht für Temperatur = 20?
Lösung: nicht warm — 20 > 20 ist falsch. Deshalb wird der else-Zweig ausgeführt.
Frage 2 von 2SchwerEine Ampelsteuerung soll bei Farbe == "rot" stoppen und sonst weiterfahren. Was ist für Farbe = "grün" der ausgeführte Pfad?
Lösung: der sonst-Pfad „weiterfahren“ — Bei einer zweiseitigen Verzweigung wird genau der zur Auswertung passende Zweig gewählt.
Mehrere Bedingungen verbinden

Manchmal reicht ein einzelner Vergleich nicht. Dann werden Teilbedingungen logisch verknüpft.

  • UND ist nur wahr, wenn beide Teilbedingungen wahr sind. Häufige Schreibweise: &&.
  • ODER ist wahr, wenn mindestens eine Teilbedingung wahr ist. Häufige Schreibweise: ||.
  • NICHT kehrt einen Wahrheitswert um. Häufige Schreibweise: !.
Beispiel

Ein Spielzug ist erlaubt, wenn Energie > 0 und Pause == falsch gilt.

Für Energie = 3 und Pause = falsch sind beide Teilbedingungen erfüllt. Die UND-Verknüpfung ist wahr.

Für Energie = 0 und Pause = falsch ist die erste Teilbedingung falsch. Damit ist die gesamte UND-Verknüpfung falsch.

Bei längeren Ausdrücken machen Klammern die beabsichtigte Gruppierung deutlich. Die genaue Operatorschreibweise und einzelne Auswertungsregeln sind sprachabhängig.

Vertiefung: Kurzschlussauswertung

Bei üblichen Kurzschlussoperatoren endet die Auswertung, sobald das Gesamtergebnis feststeht:

  • Bei UND genügt eine erste falsche Teilbedingung.
  • Bei ODER genügt eine erste wahre Teilbedingung.

Ist beispielsweise die erste Teilbedingung von A UND B falsch, kann B das Gesamtergebnis nicht mehr wahr machen.

Teste dich
Frage 1 von 3LeichtWann ist A UND B wahr?
Lösung: wenn A und B beide wahr sind — UND verlangt zwei wahre Teilbedingungen.
Frage 2 von 3MittelEin Zugang ist erlaubt, wenn Alter >= 12 UND Ticket == gültig. Gegeben sind Alter = 14 und ein ungültiges Ticket. Wie lautet das Ergebnis?
Lösung: falsch — Die Altersbedingung ist wahr, die Ticketbedingung falsch. Wahr UND falsch ergibt falsch.
Frage 3 von 3SchwerWarum muss bei A ODER B der Ausdruck B nicht mehr geprüft werden, wenn A bereits wahr ist?
Lösung: Das Gesamtergebnis der ODER-Verknüpfung steht bereits als wahr fest. — Für ODER genügt eine wahre Teilbedingung. Der Wert von B kann das wahre Gesamtergebnis nicht mehr ändern.
Mehr als zwei Fälle unterscheiden

Für mehrere mögliche Ergebnisse gibt es zwei verbreitete Vorgehensweisen.

Eine geordnete if-Kette prüft unterschiedliche Bedingungen nacheinander. Sobald eine Bedingung wahr ist, wird ihr Zweig ausgeführt. Ein abschließender else-Zweig kann alle übrigen Fälle abdecken.

Beispiel

Eine Punktzahl soll eingeordnet werden:

  1. Falls Punkte >= 80, gib „hoch“ aus.
  2. Sonst, falls Punkte >= 50, gib „mittel“ aus.
  3. Sonst gib „niedrig“ aus.

Für Punkte = 85 trifft bereits die erste Bedingung zu: Ausgabe „hoch“.

Für Punkte = 65 ist die erste Bedingung falsch, aber die zweite wahr: Ausgabe „mittel“.

Für Punkte = 30 sind beide Bedingungen falsch: Ausgabe „niedrig“.

Die Reihenfolge ist wichtig. Würde zuerst Punkte >= 50 geprüft, würde auch der Wert 85 bereits dort eingeordnet.

Wenn ein einzelner Ausdruck mit mehreren festen Werten verglichen wird, kann eine Fallauswahl wie switch geeignet sein. Ein default-Zweig fängt nicht aufgeführte Werte ab. Syntax und Verhalten unterscheiden sich je nach Programmiersprache.

Bedingungen steuern außerdem Schleifen: Eine while-Schleife wiederholt ihren Rumpf, solange ihre Bedingung wahr ist. Wird sie falsch, endet die Wiederholung.

Teste dich
Frage 1 von 2MittelWelche Ausgabe erzeugt die gezeigte Punktelogik für Punkte = 50?
Lösung: mittel — 50 >= 80 ist falsch, aber 50 >= 50 ist wahr.
Frage 2 von 2SchwerWelche Reihenfolge trennt die Bereiche ab 80, ab 50 und darunter korrekt?
Lösung: zuerst Punkte >= 80, danach Punkte >= 50, zuletzt else — Bei einer geordneten Kette muss die speziellere höhere Grenze vor der niedrigeren Grenze geprüft werden.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • Bedingung steuert den Programmablauf
    • Vergleich liefert wahr oder falsch
    • if führt den Wahr-Zweig aus
    • else übernimmt den anderen Fall
    • UND, ODER und NICHT verbinden Bedingungen
    • Mehrfachverzweigung unterscheidet mehrere Fälle
    • while wiederholt, solange die Bedingung wahr ist
Abschluss-Check
Teste dich
Frage 1 von 4LeichtWelche Aussage beschreibt eine Bedingung richtig?
Lösung: Sie wird als wahr oder falsch ausgewertet. — Eine Bedingung liefert einen Wahrheitswert und kann dadurch den Kontrollfluss steuern.
Frage 2 von 4MittelEin Programm prüft Alter >= 18. Bei wahr gibt es „volljährig“, sonst „minderjährig“ aus. Was erscheint für Alter = 18?
Lösung: volljährig — Der Vergleich 18 >= 18 ist wahr, daher wird der erste Zweig gewählt.
Frage 3 von 4MittelFür einen Download müssen Verbindung == aktiv UND Speicherplatz > 0 gelten. Die Verbindung ist aktiv, aber der Speicherplatz beträgt 0. Was geschieht?
Lösung: Der Download wird nicht gestartet. — Speicherplatz > 0 ist bei 0 falsch. Damit ist die gesamte UND-Bedingung falsch.
Frage 4 von 4SchwerEin Programm ordnet Werte so ein: zuerst x >= 100, danach x >= 10, sonst „klein“. Welchen Pfad nimmt x = 42?
Lösung: den zweiten Pfad x >= 10 — Das Programm prüft der Reihe nach: Die erste Bedingung ist falsch, die zweite wahr. Deshalb endet die Auswahl im zweiten Pfad.

Du kannst eine Verzweigung jetzt systematisch nachvollziehen: Setze die aktuellen Werte in die Bedingung ein, bestimme wahr oder falsch und folge genau dem zugehörigen Codepfad.

Passend dazu