Der else-Zweig
Die if-Anweisung führt ihren Block nur aus, wenn die Bedingung wahr ist. Oft willst du aber auch etwas tun, wenn sie nicht wahr ist. Dafür gibt es else:
int temperatur = 12;
if (temperatur > 25) {
printf("Nimm eine Mütze mit\n");
} else {
printf("Nimm eine Jacke mit\n");
}Das gibt Folgendes aus:
Nimm eine Jacke mitDie Bedingung temperatur > 25 ist falsch, also überspringt das Programm den ersten Block und führt den Block nach else aus. Diese beiden Blöcke heißen Zweige: Wie bei einem Weg, der sich gabelt, nimmt das Programm immer genau einen von ihnen. Ist die Bedingung wahr, den ersten Zweig, sonst den zweiten. Es führt nie beide aus, und es überspringt nie beide.
Das else schreibst du direkt hinter die schließende Klammer des if-Blocks, meistens in dieselbe Zeile: } else {. Zwischen dem } und dem else darf keine andere Anweisung stehen. Sonst hat das else nichts, zu dem es gehört, und der Compiler meldet error: expected expression.
else hat keine eigene Bedingung: Es bekommt alle Fälle, die das if nicht abgedeckt hat. Wenn du ihm trotzdem eine gibst, zum Beispiel } else (temperatur <= 25) {, meldet der Compiler error: expected ';' after expression. Der Fehler schlägt vor, ein Semikolon zu ergänzen, aber richtig ist, die Bedingung nach else zu löschen.
So schreibst du es:
Anweisungen
- 1
Der Monitor kostet jetzt 5000, deshalb gibt das Programm nichts aus. Füge der
if-Anweisung einenelse-Zweig hinzu, derIch verzichte auf den Monitorausgibt. - 2
Ändere
monitor_preisin3500und führe das Programm noch einmal aus. Jetzt ist die Bedingung wahr, also nimmt das Programm den ersten Zweig und gibt nurIch kaufe den Monitoraus.