Mehr Möglichkeiten: else if
Mit if und else wählt ein Programm zwischen zwei Möglichkeiten. Oft gibt es mehr. Ein Fußballspiel zum Beispiel endet auf eine von drei Arten: Die Heimmannschaft gewinnt, die Gastmannschaft gewinnt, oder es gibt ein Unentschieden. Für mehr Möglichkeiten fügst du else if-Zweige hinzu, jeden mit einer eigenen Bedingung:
int toreHeim = 3;
int toreGast = 2;
if (toreHeim > toreGast) {
std::cout << "Die Heimmannschaft hat gewonnen!" << std::endl;
} else if (toreHeim < toreGast) {
std::cout << "Die Gastmannschaft hat gewonnen!" << std::endl;
} else {
std::cout << "Unentschieden!" << std::endl;
}Das gibt aus:
Die Heimmannschaft hat gewonnen!Das Programm prüft die Bedingungen von oben nach unten und führt den Block der ersten wahren aus. Die übrigen Zweige überspringt es, auch wenn einige der späteren Bedingungen ebenfalls wahr sind. Nur wenn keine Bedingung wahr ist, wird der else-Block ausgeführt. Du kannst so viele else if-Zweige hinzufügen, wie du brauchst, immer zwischen dem if und dem else. Das else am Ende ist optional: Ohne es wird nichts ausgeführt, wenn keine Bedingung wahr ist.
Weil die erste wahre Bedingung gewinnt, kommt es auf die Reihenfolge der Bedingungen an:
int punkte = 95;
if (punkte >= 50) {
std::cout << "Bestanden" << std::endl;
} else if (punkte >= 90) {
std::cout << "Ausgezeichnet" << std::endl;
}Das gibt aus:
Bestanden95 Punkte sind ein ausgezeichnetes Ergebnis, aber die erste Bedingung, punkte >= 50, ist schon wahr, das Programm kommt also nie zur zweiten. Der Zweig, der Ausgezeichnet ausgibt, wird hier nie ausgeführt, denn jede Zahl, die mindestens 90 ist, ist auch mindestens 50. Setze die strengere Bedingung nach vorn: punkte >= 90, dann punkte >= 50.
So schreibst du es:
Anweisungen
- 1
15 °C ist kein Wetter für einen Wintermantel. Füge zwischen dem
if-Block und demelseeinenelse if-Zweig mit der Bedingungtemperatur > 10hinzu, derTrag eine Jackeausgibt. - 2
Füge noch einen
else if-Zweig mit der Bedingungtemperatur > 18hinzu, derTrag einen Pulloverausgibt, und änderetemperaturin20. Das Programm sollteTrag einen Pulloverausgeben. Gibt esTrag eine Jackeaus, steht die Bedingungtemperatur > 10zuerst und fängt auch 20 Grad ab: Verschiebe den neuen Zweig über sie.