C++-Bedingungsanweisungen meistern: if, if...else und verschachteltes if...else erklärt
C++ if, if...else und verschachteltes if...else
In diesem Tutorial lernen wir die if...else-Anweisung zur Erstellung von Entscheidungsprogrammen anhand von Beispielen kennen.
In der Computerprogrammierung verwenden wir die if...else-Anweisung, um einen Codeblock unter bestimmten Bedingungen und einen anderen Block unter anderen Bedingungen auszuführen.
Zum Beispiel die Zuweisung von Noten (A, B, C) basierend auf der Punktzahl eines Schülers.
- wenn der Prozentsatz über 90 liegt, Note A zuweisen
- wenn der Prozentsatz über 75 liegt, Note B zuweisen
- wenn der Prozentsatz über 65 liegt, Note C zuweisen
Es gibt drei Formen von if...else-Anweisungen in C++.
if-Anweisungif...else-Anweisungif...else if...else-Anweisung
C++ if-Anweisung
Die Syntax der if-Anweisung ist:
if (condition)
{
// body of if statement
}
Die if-Anweisung wertet die condition innerhalb der Klammern ( ) aus.
- Wenn die
conditionzutrueausgewertet wird, wird der Code im Körper derifausgeführt. - Wenn die
conditionzufalseausgewertet wird, wird der Code im Körper derifübersprungen.
Hinweis: Der Code innerhalb von { } ist der Körper der if-Anweisung.

Beispiel 1: C++ if-Anweisung
// Programm zur Ausgabe einer positiven, vom Benutzer eingegebenen Zahl
// Wenn der Benutzer eine negative Zahl eingibt, wird sie übersprungen
#include <iostream>
using namespace std;
int main()
{
int number;
cout << "Enter an integer: ";
cin >> number;
// prüft ob die Zahl positiv ist
if (number > 0)
{
cout << "You entered a positive integer: " << number << endl;
}
cout << "This statement is always executed.";
return 0;
}
Ausgabe 1
Enter an integer: 5 You entered a positive number: 5 This statement is always executed.
Wenn der Benutzer 5 eingibt, wird die Bedingung number > 0 zu true ausgewertet und die Anweisung im Körper der if ausgeführt.
Ausgabe 2
Enter a number: -5 This statement is always executed.
Wenn der Benutzer -5 eingibt, wird die Bedingung number > 0 zu false ausgewertet und die Anweisung im Körper der if nicht ausgeführt.
C++ if...else
Die if-Anweisung kann eine optionale else-Klausel haben. Ihre Syntax ist:
if (condition)
{
// code block if condition is true
}
else
{
// code block if condition is false
}
Die if..else-Anweisung wertet die condition innerhalb der Klammern aus.

Wenn die condition true ergibt:
- der Code im Körper der
ifwird ausgeführt - der Code im Körper der
elsewird von der Ausführung übersprungen
Wenn die condition false ergibt:
- der Code im Körper der
elsewird ausgeführt - der Code im Körper der
ifwird von der Ausführung übersprungen
Beispiel 2: C++ if...else-Anweisung
// Programm zur Prüfung, ob eine Ganzzahl positiv oder negativ ist
// Dieses Programm betrachtet 0 als positive Zahl
#include <iostream>
using namespace std;
int main()
{
int number;
cout << "Enter an integer: ";
cin >> number;
if (number >= 0)
{
cout << "You entered a positive integer: " << number << endl;
}
else
{
cout << "You entered a negative integer: " << number << endl;
}
cout << "This line is always printed.";
return 0;
}
Ausgabe 1
Enter an integer: 4 You entered a positive integer: 4. This line is always printed.
Im obigen Programm haben wir die Bedingung number >= 0. Wenn wir eine Zahl größer oder gleich 0 eingeben, dann ergibt die Bedingung true.
Hier geben wir 4 ein. Also ist die Bedingung true. Daher wird die Anweisung im Körper der if ausgeführt.
Ausgabe 2
Enter an integer: -4 You entered a negative integer: -4. This line is always printed.
Hier geben wir -4 ein. Also ist die Bedingung false. Daher wird die Anweisung im Körper der else ausgeführt.
C++ if...else...else if-Anweisung
Die if...else-Anweisung wird verwendet, um einen Codeblock zwischen zwei Alternativen auszuführen. Wenn wir jedoch eine Wahl zwischen mehr als zwei Alternativen treffen müssen, verwenden wir die if...else if...else-Anweisung.
Die Syntax der if...else if...else-Anweisung ist:
if (condition1)
{
// code block 1
}
else if (condition2)
{
// code block 2
}
else
{
// code block 3
}
Hier:
- Wenn
condition1zutrueausgewertet wird, wirdcode block 1ausgeführt. - Wenn
condition1zufalseausgewertet wird, dann wirdcondition2ausgewertet. - Wenn
condition2trueist, wirdcode block 2ausgeführt. - Wenn
condition2falseist, wirdcode block 3ausgeführt.

Hinweis: Es kann mehr als eine else if-Anweisung geben, aber nur eine if- und else-Anweisung.
Beispiel 3: C++ if...else...else if
// Programm zur Prüfung, ob eine Ganzzahl positiv, negativ oder null ist
#include <iostream>
using namespace std;
int main()
{
int number;
cout << "Enter an integer: ";
cin >> number;
if (number > 0)
{
cout << "You entered a positive integer: " << number << endl;
}
else if (number < 0)
{
cout << "You entered a negative integer: " << number << endl;
}
else
{
cout << "You entered 0." << endl;
}
cout << "This line is always printed.";
return 0;
}
Ausgabe 1
Enter an integer: 1 You entered a positive integer: 1. This line is always printed.
Ausgabe 2
Enter an integer: -2 You entered a negative integer: -2. This line is always printed.
Ausgabe 3
Enter an integer: 0 You entered 0. This line is always printed.
In diesem Programm nehmen wir eine Zahl vom Benutzer entgegen. Dann verwenden wir die if...else if...else-Leiter, um zu prüfen, ob die Zahl positiv, negativ oder null ist.
Wenn die Zahl größer als 0 ist, wird der Code im if-Block ausgeführt. Wenn die Zahl kleiner als 0 ist, wird der Code im else if-Block ausgeführt. Andernfalls wird der Code im else-Block ausgeführt.
C++ Verschachteltes if...else
Manchmal müssen wir eine if-Anweisung innerhalb einer anderen if-Anweisung verwenden. Dies ist als verschachtelte if-Anweisung bekannt.
Denken Sie daran als mehrere Ebenen von if-Anweisungen. Es gibt eine erste, äußere if-Anweisung, und darin ist eine weitere, innere if-Anweisung. Ihre Syntax ist:
// äußere if-Anweisung
if (condition1)
{
// statements
// innere if-Anweisung
if (condition2)
{
// statements
}
}
Hinweise:
- Wir können
elseundelse ifAnweisungen zur innerenif-Anweisung hinzufügen, falls erforderlich. - Die innere
if-Anweisung kann auch in die äußereelseoderelse ifAnweisungen eingefügt werden (falls sie existieren). - Wir können mehrere Ebenen von
if-Anweisungen verschachteln.
Beispiel 4: C++ Verschachteltes if
// C++ Programm, um zu prüfen, ob eine Ganzzahl positiv, negativ oder null ist
// mit verschachtelten if-Anweisungen
#include <iostream>
using namespace std;
int main()
{
int num;
cout << "Enter an integer: ";
cin >> num;
// äußere if-Bedingung
if (num != 0)
{
// innere if-Bedingung
if (num > 0)
{
cout << "The number is positive." << endl;
}
// innere else-Bedingung
else
{
cout << "The number is negative." << endl;
}
}
// äußere else-Bedingung
else
{
cout << "The number is 0 and it is neither positive nor negative." << endl;
}
cout << "This line is always printed." << endl;
return 0;
}
Ausgabe 1
Enter an integer: 35 The number is positive. This line is always printed.
Ausgabe 2
Enter an integer: -35 The number is negative. This line is always printed.
Ausgabe 3
Enter an integer: 0 The number is 0 and it is neither positive nor negative. This line is always printed.
Im obigen Beispiel:
- Wir nehmen eine Ganzzahl als Eingabe vom Benutzer entgegen und speichern sie in der Variable num.
- Wir verwenden dann eine
if...else-Anweisung, um zu prüfen, ob num nicht gleich0ist.- Wenn
true, dann wird die innereif...else-Anweisung ausgeführt. - Wenn
false, wird der Code in der äußerenelse-Bedingung ausgeführt, der"The number is 0 and it is neither positive nor negative."ausgibt.
- Wenn
- Die innere
if...else-Anweisung prüft, ob die Eingabezahl positiv ist, d. h. ob num größer als 0 ist.- Wenn
true, dann geben wir eine Aussage aus, dass die Zahl positiv ist. - Wenn
false, geben wir aus, dass die Zahl negativ ist.
- Wenn
Hinweis: Wie Sie sehen, macht verschachteltes if...else Ihre Logik kompliziert. Wenn möglich, sollten Sie immer versuchen, verschachteltes if...else zu vermeiden.
Körper von if...else mit nur einer Anweisung
Wenn der Körper von if...else nur eine Anweisung hat, können Sie { } im Programm weglassen. Zum Beispiel können Sie ersetzen:
int number = 5;
if (number > 0)
{
cout << "The number is positive." << endl;
}
else
{
cout << "The number is negative." << endl;
}
durch
int number = 5;
if (number > 0)
cout << "The number is positive." << endl;
else
cout << "The number is negative." << endl;
Die Ausgabe beider Programme wird dieselbe sein.
Hinweis: Obwohl es nicht notwendig ist, { } zu verwenden, wenn der Körper von if...else nur eine Anweisung hat, macht die Verwendung von { } Ihren Code lesbarer.
Mehr zur Entscheidungsfindung
In bestimmten Situationen kann ein ternärer Operator eine if...else-Anweisung ersetzen. Um mehr zu erfahren, besuchen Sie C++ Ternärer Operator.
Wenn wir eine Wahl zwischen mehr als einer Alternative basierend auf einer gegebenen Testbedingung treffen müssen, kann die switch-Anweisung verwendet werden. Um mehr zu erfahren, besuchen Sie C++ switch.
Schauen Sie sich diese Beispiele an, um mehr zu lernen:
C++ Programm zur Prüfung, ob eine Zahl gerade oder ungerade ist
C++ Programm zur Prüfung, ob ein Zeichen Vokal oder Konsonant ist
C++ Programm zum Finden der größten Zahl unter drei Zahlen
C Sprache
- Bedingte Logik in C# meistern: If, If-Else, If-ElseIf und verschachtelte If-Anweisungen
- C++ Klassen & Objekte: Praktischer Leitfaden zur objektorientierten Programmierung
- C++ Speicherverwaltung meistern: Experten-Einsatz von new und delete
- C++ Vererbung: Public, Protected & Private erklärt
- C++ Friend-Funktionen und Friend-Klassen: Zugriffskontrolle meistern
- Python-Anweisungen, Einrückung & Kommentare: Klare Anleitung
- Java verschachtelte und innere Klassen meistern: Typen, Beispiele und Best Practices
- C++ Datum & Zeit: Umfassender Leitfaden
- C++ Overloading: Funktionen & Operatoren erklärt
- C++ Datei-I/O: Lesen & Schreiben mit fstream