Informatik · Klasse 2–8 · aktualisiert
Bedingungen beim Programmieren einfach erklärt
Du lernst, wie ein Programm mit Bedingungen entscheidet: Vergleiche, und, oder, nicht und die Zweige if, else und elif.
0 von 9 Aufgaben gelöst
Kurz gesagt
Eine Bedingung ist eine Aussage, die wahr oder falsch ist. Ist sie wahr, läuft ein Stück Programm. Mit „sonst“ (else), „sonst falls“ (elif) und den Wörtern und, oder, nicht wählt ein Programm zwischen mehreren Wegen aus.
Stell dir ein ausgedachtes Spiel vor: Es prüft, ob du genug Punkte hast, und zeigt dann „Gewonnen“. Dafür stellt das Programm eine Frage, die nur mit wahr oder falsch beantwortet wird. Je nach Antwort geht es an einer anderen Stelle weiter. Hier lernst du, wie das funktioniert.
Deine Lernziele
Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.
4 Abschnitte
Ein Programm, das nur von oben nach unten läuft, nützt höchstens begrenzt. Mit einer Bedingung kann der Ablauf davon abhängen, wie die Lage gerade ist.
Eine Anweisung ist ein Befehl an den Computer. Ein Codeabschnitt ist ein Stück Programm aus einem oder mehreren Befehlen. Bei einer bedingten Anweisung prüft das Programm zuerst die Bedingung. Trifft sie zu (und nur dann), läuft der Codeabschnitt. Danach geht es mit den nächsten Anweisungen weiter. Trifft die Bedingung nicht zu, wird der Abschnitt übersprungen.
Die Bedingung gilt nicht für alle Zeiten. Sie wird jedes Mal neu geprüft, wenn das Programm diese Stelle erreicht. Das Ergebnis kann sich von Mal zu Mal ändern.
In der Programmiersprache Python heißt „falls“ oder „wenn“ auf Englisch if und „sonst“ heißt else.
Definition
Bedingte Anweisung
Eine bedingte Anweisung ist ein Befehl, bei dem ein Programmabschnitt nur unter einer bestimmten Bedingung ausgeführt wird.
Beispiel: Heizung einschalten (ausgedachte Werte)
- 1Programm: if (Temperatur < 20) Heizung_Einschalten();
- 2Das Zeichen < liest du als „kleiner als“. Das heißt: Wenn die Temperatur kleiner als 20 ist, schaltet das Programm die Heizung ein.
- 3Temperatur ist 15: 15 < 20 ist wahr. Die Heizung wird eingeschaltet.
- 4Temperatur ist 25: 25 < 20 ist falsch. Die Anweisung wird übersprungen.
Merke: Die Bedingung wird ausgewertet, bevor der Codeabschnitt läuft. Der Abschnitt läuft nur, wenn sie zutrifft.
Teste dich
Ein Vergleich stellt zwei Werte einander gegenüber. Das Ergebnis ist ein Wahrheitswert: wahr (die Bedingung trifft zu) oder falsch (sie trifft nicht zu). Zum Beispiel ist 7 > 3 wahr und 2 > 5 falsch. Vergleiche werden meist durch Vergleichszeichen dargestellt. Nach einem Vergleich folgt in der Regel eine Verzweigung, also eine Stelle, an der das Programm einen von mehreren Wegen wählt.
In Python kannst du zwei Vergleiche zu einem verketten, wie bei Ungleichungen in der Mathematik: 0 <= x < 10 ist wahr, wenn x größer oder gleich 0 und kleiner als 10 ist. Für x = 5 ist das wahr, für x = 12 falsch.
Du kannst auch zwei Aussagen verknüpfen. Bei „und“ ist das Ergebnis wahr, wenn beide Aussagen wahr sind. Bei „oder“ ist es wahr, wenn mindestens eine wahr ist. „nicht“ dreht den Wert um: Aus wahr wird falsch und aus falsch wird wahr. In vielen Programmiersprachen schreibt man das als not a oder !a.
Definition
Wahrheitswert
Ein Wahrheitswert ist entweder wahr (die Bedingung trifft zu) oder falsch (die Bedingung trifft nicht zu).
| Zeichen in Python | So liest du es |
|---|---|
| == | gleich |
| != | ungleich |
| < | kleiner |
| <= | kleiner oder gleich |
| > | größer |
| >= | größer oder gleich |
Merke: Und ist wahr, wenn beide Aussagen wahr sind. Oder ist wahr, wenn mindestens eine wahr ist. Nicht kehrt den Wert um.
Teste dich
Um den Weg (den Zweig) vorherzusagen, setzt du die Eingabe in die Bedingung ein. Dann prüfst du von oben nach unten: Ist die Bedingung wahr oder falsch? Danach weißt du, welcher Codeabschnitt läuft.
Bei einem einzelnen if wird der Abschnitt übersprungen, wenn die Bedingung nicht zutrifft. Bei if-else läuft bei „wahr“ der erste Abschnitt, sonst der zweite. Bei if-else wird also immer Code ausgeführt.
Bei zwei getrennten if-Prüfungen werden beide Bedingungen geprüft. Dabei kann es vorkommen, dass gar kein Code ausgeführt wird, nämlich dann, wenn keine der Bedingungen erfüllt ist.
Definition
Zweig
Ein Zweig ist einer der Codeabschnitte, die bei einer Verzweigung laufen können. Welcher läuft, hängt von der Bedingung ab.
Beispiel: Zwei getrennte Prüfungen (ausgedachte Eingaben)
- 1Ausgedachtes Programm mit zwei getrennten Prüfungen: Erst „falls zahl > 5 dann melde Groß“, danach „falls zahl < 3 dann melde Klein“.
- 2zahl = 8: 8 > 5 ist wahr, also kommt die Meldung Groß. 8 < 3 ist falsch, das wird übersprungen.
- 3zahl = 1: 1 > 5 ist falsch. 1 < 3 ist wahr, also kommt die Meldung Klein.
- 4zahl = 4: Beide Bedingungen sind falsch. Es kommt keine Meldung.
Merke: Setze die Eingabe ein, prüfe die Bedingungen von oben nach unten und finde den Zweig, der läuft.
Teste dich
Überlege zuerst, wie viele Wege es gibt. Soll etwas nur manchmal passieren, nimmst du eine einfache bedingte Anweisung mit if. Gibt es zwei Wege, nimmst du if mit else. Das else gilt, wenn die Bedingung nicht erfüllt ist.
Gibt es mehr als zwei Wege, nimmst du eine mehrfache Verzweigung. In Python schreibst du dafür elif (das heißt: sonst wenn). Die Bedingungen werden der Reihe nach geprüft, bis eine davon zutrifft. Dann läuft der Abschnitt dieser Bedingung, und die Verzweigung ist beendet. Trifft keine zu, läuft der else-Teil, falls er vorhanden ist.
Für sieben Wochentage wären sieben einzelne if-Prüfungen ineffizient, das heißt unnötig aufwendig, weil jede der sieben Prüfungen vorgenommen wird. Außerdem musst du zeigen, welche Befehle zu welchem Zweig gehören. In Python machst du das mit Einrückung: Die Zeilen eines Zweigs beginnen weiter rechts.
Definition
Mehrfache Verzweigung
Eine mehrfache Verzweigung (auch Fallunterscheidung genannt) wählt aus mehreren Abschnitten. Entweder entscheidet das Ergebnis eines Ausdrucks (etwas, das einen Wert ergibt), welcher Abschnitt und ob überhaupt einer läuft. Oder es gibt mehrere Bedingungen, und jeder gehört ein Abschnitt.
| Situation | Passende Form |
|---|---|
| Etwas nur manchmal tun | if allein |
| Eine von zwei Möglichkeiten tun | if mit else |
| Eine von mehreren Möglichkeiten tun | if, elif und else |
Merke: Wähle die Form nach der Zahl der Wege. Bei elif wird nach dem ersten Treffer nicht weiter geprüft.
Teste dich
Alles auf einen Blick
Bedingung (Programmierung)
Bedingung
Ein Programmabschnitt läuft nur, wenn sie zutrifft.
Wahrheitswert
Ein Vergleich liefert wahr oder falsch.
Verknüpfung
Und ist wahr, wenn beide wahr sind. Oder ist wahr, wenn mindestens eine wahr ist. Nicht kehrt um.
Vorhersage
Setze die Eingabe ein und prüfe von oben nach unten.
Form wählen
if, if mit else oder if, elif, else, je nach Zahl der Wege.
Musteraufgabe · Schritt für Schritt
Eine Kette mit elif durchspielen (ausgedachtes Beispiel)
- 1Das Programm hat drei Zweige: Montag → Sport, Samstag → Ausflug, sonst → Nichts Besonderes.
- 2Eingabe tag = Samstag: Erst wird „tag gleich Montag“ geprüft. Das ist falsch.
- 3Dann wird „tag gleich Samstag“ geprüft. Das ist wahr, also läuft der Zweig Ausflug.
- 4Damit ist die Verzweigung beendet. Der else-Teil läuft dann nicht.
- 5Eingabe tag = Mittwoch: Beide Bedingungen sind falsch. Deshalb läuft der else-Teil: Nichts Besonderes.
Fehler finden
Prüfe die Aussagen zu einer Eintrittsregel (ausgedachtes Beispiel) In einer Zeile steckt ein Fehler. Tippe sie an.
Fehler in Zeile 4Das Zeichen >= heißt „größer oder gleich“. Der Wert 8 ist gleich 8, also ist die Bedingung wahr. Richtig: Bei alter = 8 läuft Zugang.
Lückentext
Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.
Eine bedingte Anweisung läuft nur, wenn die Bedingung . Das Zeichen „<=“ bedeutet . Trifft bei einer elif-Kette eine Bedingung zu, werden die übrigen Bedingungen .
Karteikasten
Erst selbst überlegen, dann umdrehen.
Übung mit Feedback