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 es nicht ist. Dafür gibt es else:
int temperatur = 12;
if (temperatur > 25) {
std::cout << "Nimm eine Kappe mit" << std::endl;
} else {
std::cout << "Nimm eine Jacke mit" << std::endl;
}Das gibt aus:
Nimm eine Jacke mitDie Bedingung temperatur > 25 ist falsch, deshalb ü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 nach der schließenden Klammer des if-Blocks, meist in dieselbe Zeile: } else {. Zwischen der } 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. Gibst du ihm trotzdem eine, zum Beispiel } else (temperatur <= 25) {, meldet der Compiler error: expected ';' after expression. Der Fehler schlägt vor, ein Semikolon einzufügen, 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 kaufe den Monitor nichtausgibt. - 2
Ändere
monitorPreisin3500und führe das Programm noch einmal aus. Jetzt ist die Bedingung wahr, das Programm nimmt also den ersten Zweig und gibt nurIch kaufe den Monitoraus.