Ein erstes Beispiel für eine if-Anweisung sieht wie folgt aus:
1 2 3 | if(Bedingung) { } |
Ist die Bedingung wahr, so werden alle Anweisungen innerhalb der geschweiften Klammern ausgeführt. Ist die Bedingung falsch, werden alle Anweisungen in den geschweiften Klammern übersprungen.
Hier noch ein kleines Beispiel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | int main() { int zahl; cout << "Geben Sie eine Zahl ein:"; cin >> zahl; if(zahl<50) { cout << "Die Zahl ist kleiner als 50." << endl; } if(zahl>50) { cout << "Die Zahl ist groesser als 50." << endl; } if(zahl==50) cout << "Die 50 wurde eingegeben." << endl; } |
Das Programm untersucht, ob eine Zahl größer, gleich oder kleiner als 50 ist.
Im Beispiel sieht man auch, dass die letzte if-Anweisung keine geschweiften Klammern hat. Das ist immer dann erlaubt, wenn der Anweisungsblock aus nur einer Anweisung besteht.
Außerdem ist es wichtig, dass die Abfrage auf Gleichheit mit zwei Gleichheitszeichen geschrieben wird. Ein Gleichheitszeichen würde der Compiler als Zuweisungsoperator interpretieren.
Schritt für Schritt wird in unserem Beispiel jede if-Anweisung abgearbeitet. Ist zahl<50, wird die Meldung an der Konsole ausgegeben. Trotzdem wird noch überprüft, ob die zahl>50 und ob zahl==50 ist.
Die if-Anweisung kann für diesen Fall um eine else-Anweisung erweitert werden. Diese Anweisung wird ausgeführt, wenn die Bedingung der if-Anweisung falsch ist. Unser Beispiel können wir somit auch so darstellen:
1 2 3 4 5 6 7 | if(zahl<50) cout << "Die Zahl ist kleiner als 50." << endl; else if(zahl>50) cout << "Die Zahl ist groesser als 50." << endl; else cout << "Die 50 wurde eingegeben." << endl; |
Die geschweiften Klammern wurden hier komplett weggelassen, da jeder Anweisungsblock nur aus einer Anweisung besteht. Diese Schreibweise ist zwar erlaubt, kann aber dazu führen, das der Code von einem anderen Entwickler falsch interpretiert wird. Übersichtlicher wirkt der Code, wenn der Anweisungsblock der ersten else-Anweisung in geschweifte Klammern eingefaßt wird.
1 2 3 4 5 6 7 8 9 | if(zahl<50) cout << "Die Zahl ist kleiner als 50." << endl; else { if(zahl>50) cout << "Die Zahl ist groesser als 50." << endl; else cout << "Die 50 wurde eingegeben." << endl; } |
Hinweis
C++ kennt noch einige weitere Vergleichoperatoren als die hier vorgestellten “>”, “<” und “==”. Eine Übersicht darüber finden Sie unter Vergleichoperatoren in C++.