Bedingte Anweisungen in C++: if, else if, switch
Lernen Sie bedingte Anweisungen in C++ mit if, else if und switch zur Steuerung des Programmablaufs.
In C++-Programmen werden Bedingungsanweisungen (conditional statements) verwendet,
um verschiedene Codeblöcke abhängig von einer Bedingung auszuführen.
Bedingungsanweisungen steuern den Ablauf des Programms und bilden den Entscheidungsmechanismus.
In diesem Artikel lernen wir anhand von Beispielen, wie if, else if, else und switch funktionieren.
1. if-Anweisung
Die if-Anweisung führt den Codeblock darunter aus, wenn die angegebene Bedingung true (wahr) ist.
Wenn die Bedingung false (falsch) ist, wird der Block übersprungen.
#include <iostream>
using namespace std;
int main() {
int alter = 18;
if (alter >= 18) {
cout << "Sie sind volljährig." << endl;
}
return 0;
}
In diesem Beispiel wird, wenn alter >= 18 wahr ist, „Sie sind volljährig.“ ausgegeben.
Wenn die Bedingung nicht erfüllt ist (z. B. alter = 16), wird keine Ausgabe erzeugt.
2. if – else-Struktur
Mit der if – else-Struktur kann man eine Aktion ausführen, wenn eine Bedingung wahr ist,
und eine andere, wenn sie falsch ist.
int alter = 16;
if (alter >= 18) {
cout << "Sie sind volljährig." << endl;
} else {
cout << "Sie sind noch nicht volljährig." << endl;
}
Hier wird, wenn die Bedingung falsch ist, der zweite Block (else) ausgeführt.
3. if – else if – else-Kette
Um mehrere Bedingungen der Reihe nach zu prüfen, kann eine else if-Kette verwendet werden.
Das Programm führt den ersten Block aus, dessen Bedingung wahr ist, und beendet dann die Kette.
#include <iostream>
using namespace std;
int main() {
int note = 75;
if (note >= 90) {
cout << "Note: AA" << endl;
} else if (note >= 80) {
cout << "Note: BA" << endl;
} else if (note >= 70) {
cout << "Note: BB" << endl;
} else if (note >= 60) {
cout << "Note: CC" << endl;
} else {
cout << "Nicht bestanden." << endl;
}
return 0;
}
In diesem Beispiel ist die Note 75, daher trifft die dritte Bedingung zu, und es wird „Note: BB“ ausgegeben.
4. Mehrere Bedingungen kombinieren
In if-Anweisungen können mehrere Bedingungen mit logischen Operatoren kombiniert werden:
int alter = 20;
bool ausweisVorhanden = true;
if (alter >= 18 && ausweisVorhanden) {
cout << "Zutritt erlaubt." << endl;
} else {
cout << "Kein Zutritt." << endl;
}
&&→ Wird ausgeführt, wenn beide Bedingungen wahr sind.||→ Wird ausgeführt, wenn mindestens eine Bedingung wahr ist.!→ Kehrt das Ergebnis der Bedingung um (nicht).
5. switch-Anweisung
Die switch-Anweisung führt verschiedene Codeblöcke abhängig vom Wert einer Variablen aus.
Sie ist eine übersichtlichere Alternative zu mehreren if – else-Anweisungen,
insbesondere bei Menüs oder festen Auswahlmöglichkeiten.
#include <iostream>
using namespace std;
int main() {
int tag = 3;
switch (tag) {
case 1:
cout << "Montag" << endl;
break;
case 2:
cout << "Dienstag" << endl;
break;
case 3:
cout << "Mittwoch" << endl;
break;
case 4:
cout << "Donnerstag" << endl;
break;
case 5:
cout << "Freitag" << endl;
break;
default:
cout << "Wochenende!" << endl;
}
return 0;
}
In diesem Beispiel ist tag = 3, daher wird der Block case 3 ausgeführt
und „Mittwoch“ auf dem Bildschirm angezeigt.
6. Verwendung von break und default
- break: Beendet den
switch-Block, sobald ein passendercaseausgeführt wurde. Wird es weggelassen, führt das Programm die nachfolgendencase-Blöcke ebenfalls aus. - default: Wird ausgeführt, wenn kein
caseübereinstimmt.
Beispiel:
int auswahl = 2;
switch (auswahl) {
case 1:
cout << "Option 1 gewählt" << endl;
case 2:
cout << "Option 2 gewählt" << endl;
default:
cout << "Standardblock" << endl;
}
Da hier kein break verwendet wird, lautet die Ausgabe:
Option 2 gewählt
Standardblock
Dieses Verhalten wird als fall-through bezeichnet.
Es ist normalerweise unerwünscht, daher sollte am Ende jedes case-Blocks ein break; verwendet werden.
7. Verwendung von switch mit Zeichen oder Enums
Die switch-Anweisung kann nur mit den Typen int, char oder enum verwendet werden.
Sie funktioniert nicht mit double oder string.
char op = '+';
switch (op) {
case '+':
cout << "Additionsoperation" << endl;
break;
case '-':
cout << "Subtraktionsoperation" << endl;
break;
default:
cout << "Unbekannte Operation" << endl;
}
Hier ist op gleich '+', daher wird „Additionsoperation“ ausgegeben.
8. Beispielanwendung: Einfacher Taschenrechner
Das folgende Beispiel kombiniert if- und switch-Strukturen,
um basierend auf Benutzereingaben Berechnungen durchzuführen.
#include <iostream>
using namespace std;
int main() {
double a, b;
char op;
cout << "Erste Zahl eingeben: ";
cin >> a;
cout << "Zweite Zahl eingeben: ";
cin >> b;
cout << "Operation wählen (+, -, *, /): ";
cin >> op;
switch (op) {
case '+':
cout << "Ergebnis: " << a + b << endl;
break;
case '-':
cout << "Ergebnis: " << a - b << endl;
break;
case '*':
cout << "Ergebnis: " << a * b << endl;
break;
case '/':
if (b != 0)
cout << "Ergebnis: " << a / b << endl;
else
cout << "Fehler: Division durch Null nicht erlaubt!" << endl;
break;
default:
cout << "Ungültige Operation." << endl;
}
return 0;
}
Dieses Programm liest zwei Zahlen und eine Operation vom Benutzer ein, berechnet das Ergebnis und überprüft gleichzeitig auf ungültige Eingaben wie Division durch Null.
9. TL;DR
if→ Führt den Block aus, wenn die Bedingung wahr ist.else if→ Fügt alternative Bedingungen hinzu.else→ Wird ausgeführt, wenn keine Bedingung zutrifft.switch→ Übersichtlicher bei mehreren festen Auswahlmöglichkeiten.break→ Verlässt den switch-Block.- Bedingungen können mit
&&,||und!kombiniert werden. - Alle Beispiele können in Visual Studio 2022 oder GCC 11+ ausgeführt werden.