C++ conditionele statements: if, if...else en geneste if...else uitgelegd
C++ if, if...else en Geneste if...else
In deze tutorial leren we over het if...else statement om decision making programma's te maken met behulp van voorbeelden.
In computer programmeren gebruiken we het if...else statement om één codeblok onder bepaalde condities uit te voeren en een ander codeblok onder andere condities.
Bijvoorbeeld, cijfers (A, B, C) toekennen op basis van behaalde punten door een student.
- als het percentage boven 90 is, geef cijfer A
- als het percentage boven 75 is, geef cijfer B
- als het percentage boven 65 is, geef cijfer C
Er zijn drie vormen van if...else statements in C++.
ifstatementif...elsestatementif...else if...elsestatement
C++ if Statement
De syntaxis van het if statement is:
if (condition) { // body of if statement }
Het if statement evalueert de condition binnen de haakjes ( ).
- Als de
conditionevalueert naartrue, wordt de code binnen de body vanifuitgevoerd. - Als de
conditionevalueert naarfalse, wordt de code binnen de body vanifovergeslagen.
Let op: De code binnen { } is de body van het if statement.

Voorbeeld 1: C++ if Statement
// Programma om positief getal van de gebruiker te printen // Als de gebruiker een negatief getal invoert, wordt het overgeslagen #include <iostream> using namespace std; int main() { int number; cout << "Enter an integer: "; cin >> number; // controleert of het getal positief is if (number > 0) { cout << "You entered a positive integer: " << number << endl; } cout << "This statement is always executed."; return 0; }
Output 1
Enter an integer: 5 You entered a positive number: 5 This statement is always executed.
Wanneer de gebruiker 5 invoert, evalueert de conditie number > 0 naar true en wordt het statement binnen de body van if uitgevoerd.
Output 2
Enter a number: -5 This statement is always executed.
Wanneer de gebruiker -5 invoert, evalueert de conditie number > 0 naar false en wordt het statement binnen de body van if niet uitgevoerd.
C++ if...else
Het if statement kan een optionele else clause hebben. De syntaxis is:
if (condition) { // block of code if condition is true } else { // block of code if condition is false }
Het if..else statement evalueert de condition binnen de haakjes.

Als de condition true evalueert,
- de code binnen de body van
ifwordt uitgevoerd - de code binnen de body van
elsewordt overgeslagen
Als de condition false evalueert,
- de code binnen de body van
elsewordt uitgevoerd - de code binnen de body van
ifwordt overgeslagen
Voorbeeld 2: C++ if...else Statement
// Programma om te controleren of een integer positief of negatief is // Dit programma beschouwt 0 als positief #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; }
Output 1
Enter an integer: 4 You entered a positive integer: 4. This line is always printed.
In het bovenstaande programma hebben we de conditie number >= 0. Als we een getal groter of gelijk aan 0 invoeren, evalueert de conditie true.
Hier voeren we 4 in. Dus de conditie is true. Daarom wordt het statement binnen de body van if uitgevoerd.
Output 2
Enter an integer: -4 You entered a negative integer: -4. This line is always printed.
Hier voeren we -4 in. Dus de conditie is false. Daarom wordt het statement binnen de body van else uitgevoerd.
C++ if...else...else if statement
Het if...else statement wordt gebruikt om een codeblok uit te voeren tussen twee alternatieven. Als we echter een keuze moeten maken tussen meer dan twee alternatieven, gebruiken we het if...else if...else statement.
De syntaxis van het if...else if...else statement is:
if (condition1) { // code block 1 } else if (condition2){ // code block 2 } else { // code block 3 }
Hier,
- Als
condition1evalueert naartrue, wordtcode block 1uitgevoerd. - Als
condition1evalueert naarfalse, dan wordtcondition2geëvalueerd. - Als
condition2trueis, wordtcode block 2uitgevoerd. - Als
condition2falseis, wordtcode block 3uitgevoerd.

Let op: Er kunnen meer dan één else if statements zijn maar slechts één if en else statements.
Voorbeeld 3: C++ if...else...else if
// Programma om te controleren of een integer positief, negatief of nul is #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; }
Output 1
Enter an integer: 1 You entered a positive integer: 1. This line is always printed.
Output 2
Enter an integer: -2 You entered a negative integer: -2. This line is always printed.
Output 3
Enter an integer: 0 You entered 0. This line is always printed.
In dit programma nemen we een getal van de gebruiker. We gebruiken dan de if...else if...else ladder om te controleren of het getal positief, negatief of nul is.
Als het getal groter is dan 0, wordt de code binnen de if block uitgevoerd. Als het getal kleiner is dan 0, wordt de code binnen de else if block uitgevoerd. Anders wordt de code binnen de else block uitgevoerd.
C++ Geneste if...else
Soms moeten we een if statement binnen een ander if statement gebruiken. Dit heet genest if statement.
See het als meerdere lagen van if statements. Er is een eerste, outer if statement, en daarin zit een inner if statement. De syntaxis is:
// outer if statement if (condition1) { // statements // inner if statement if (condition2) { // statements } }
Notities:
- We kunnen
elseenelse ifstatements toevoegen aan de innerifstatement zoals vereist. - De inner
ifstatement kan ook in de outerelseofelse ifstatements geplaatst worden (als ze bestaan). - We kunnen meerdere lagen van
ifstatements nesten.
Voorbeeld 4: C++ Geneste if
// C++ programma om te vinden of een integer positief, negatief of nul is // met geneste if statements #include <iostream> using namespace std; int main() { int num; cout << "Enter an integer: "; cin >> num; // outer if condition if (num != 0) { // inner if condition if (num > 0) { cout << "The number is positive." << endl; } // inner else condition else { cout << "The number is negative." << endl; } } // outer else condition else { cout << "The number is 0 and it is neither positive nor negative." << endl; } cout << "This line is always printed." << endl; return 0; }
Output 1
Enter an integer: 35 The number is positive. This line is always printed.
Output 2
Enter an integer: -35 The number is negative. This line is always printed.
Output 3
Enter an integer: 0 The number is 0 and it is neither positive nor negative. This line is always printed.
In het bovenstaande voorbeeld,
- We nemen een integer als input van de gebruiker en slaan het op in de variabele num.
- We gebruiken dan een
if...elsestatement om te controleren of num niet gelijk is aan0.- Als
true, dan wordt de innerif...elsestatement uitgevoerd. - Als
false, wordt de code binnen de outerelseconditie uitgevoerd, wat print"The number is 0 and it is neither positive nor negative."
- Als
- De inner
if...elsestatement controleert of het invoergetal positief is i.e. als num groter is dan 0.- Als
true, printen we een statement dat zegt dat het getal positief is. - Als
false, printen we dat het getal negatief is.
- Als
Let op: Zoals je ziet, maakt geneste if...else je logica gecompliceerd. Als mogelijk, moet je altijd proberen geneste if...else te vermijden.
Body van if...else Met Slechts Één Statement
Als de body van if...else slechts één statement heeft, kun je { } weglaten in het programma. Bijvoorbeeld, je kunt vervangen
int number = 5; if (number > 0) { cout << "The number is positive." << endl; } else { cout << "The number is negative." << endl; }
met
int number = 5; if (number > 0) cout << "The number is positive." << endl; else cout << "The number is negative." << endl;
De output van beide programma's zal hetzelfde zijn.
Let op: Hoewel het niet nodig is om { } te gebruiken als de body van if...else slechts één statement heeft, maakt het gebruik van { } je code leesbaarder.
Meer over Decision Making
In bepaalde situaties kan een ternary operator een if...else statement vervangen. Voor meer info, bezoek C++ Ternary Operator.
Als we een keuze moeten maken tussen meer dan één alternatief op basis van een gegeven testconditie, kan het switch statement gebruikt worden. Voor meer info, bezoek C++ switch.
Bekijk deze voorbeelden om meer te leren:
C++ Programma om te Controleren of Getal Even of Oneven is
C++ Programma om te Controleren of een Karakter Klinker of Medeklinker is.
C++ Programma om het Grootste Getal Onder Drie Getallen te Vinden
C Taal
- Conditionele Logica in C#: If, If-Else, If-ElseIf en Geneste If Statements
- C++ while en do-while loops: herhaling in je code beheersen
- C++ klassen & objecten: praktische gids voor object-georiënteerd programmeren
- C++ Geheugenbeheer meesteren: Expert gebruik van new en delete
- C++ Overerving Beheersen: Public, Protected & Private Uitgelegd
- C++ Friend Functies en Friend Classes: Toegangscontrole Beheersen
- Uitgebreide Gids voor Datum en Tijd in C++
- C++ Overloading Beheersen: Functies & Operators Uitgelegd
- File I/O in C++ Beheersen: Lezen en Schrijven met fstream
- Python Statements, Indentatie en Comments: Een duidelijke gids
- Java geneste en inner classes meesteren: typen, voorbeelden en best practices