In deze tutorial leer je met behulp van voorbeelden over if-statement (inclusief if… else en genest if… else) in C-programmering.
C if Statement
De syntaxis van de if
instructie in C-programmering is:
if (test expression) ( // statements to be executed if the test expression is true )
Hoe als statement werkt?
De if
instructie evalueert de testuitdrukking tussen haakjes ()
.
- Als de testuitdrukking als waar wordt geëvalueerd, worden instructies in de hoofdtekst van
if
uitgevoerd. - Als de testuitdrukking als onwaar wordt geëvalueerd, worden instructies in de hoofdtekst van
if
niet uitgevoerd.
Raadpleeg relationele en logische operators voor meer informatie over wanneer testuitdrukking wordt geëvalueerd naar true (niet-nulwaarde) en false (0).
Voorbeeld 1: if-statement
// Program to display a number if it is negative #include int main() ( int number; printf("Enter an integer: "); scanf("%d", &number); // true if number is less than 0 if (number < 0) ( printf("You entered %d.", number); ) printf("The if statement is easy."); return 0; )
Uitgang 1
Voer een geheel getal in: -2 U hebt -2 ingevoerd. De if-verklaring is eenvoudig.
Wanneer de gebruiker -2 invoert, wordt de testuitdrukking number<0
geëvalueerd als waar. Daarom wordt U ingevoerd -2 weergegeven op het scherm.
Uitgang 2
Voer een geheel getal in: 5 De if-instructie is eenvoudig.
Wanneer de gebruiker 5 invoert, wordt de testuitdrukking number<0
geëvalueerd als false en wordt de instructie in de body van if
niet uitgevoerd
C if… else Statement
De if
instructie kan een optioneel else
blok hebben. De syntaxis van de if… else
instructie is:
if (test expression) ( // statements to be executed if the test expression is true ) else ( // statements to be executed if the test expression is false )
Hoe als… else-verklaring werkt?
Als de testuitdrukking wordt geëvalueerd als waar,
- verklaringen in de body van
if
worden uitgevoerd. - verklaringen in de body van
else
worden overgeslagen voor uitvoering.
Als de testuitdrukking wordt geëvalueerd als onwaar,
- verklaringen in de body van
else
worden uitgevoerd - verklaringen in de body van
if
worden overgeslagen voor uitvoering.
Voorbeeld 2: if… else-instructie
// Check whether an integer is odd or even #include int main() ( int number; printf("Enter an integer: "); scanf("%d", &number); // True if the remainder is 0 if (number%2 == 0) ( printf("%d is an even integer.",number); ) else ( printf("%d is an odd integer.",number); ) return 0; )
Uitvoer
Voer een geheel getal in: 7 7 is een oneven geheel getal.
Wanneer de gebruiker 7 invoert, wordt de testuitdrukking number%2==0
geëvalueerd als onwaar. Daarom wordt de instructie in de body van else
uitgevoerd.
C als… anders Ladder
De if… else
instructie voert twee verschillende codes uit, afhankelijk van of de testuitdrukking waar of onwaar is. Soms moet er een keuze gemaakt worden uit meer dan 2 mogelijkheden.
De if… else-ladder stelt je in staat om tussen meerdere testuitdrukkingen te zoeken en verschillende statements uit te voeren.
Syntaxis van if… else Ladder
if (test expression1) ( // statement(s) ) else if(test expression2) ( // statement(s) ) else if (test expression3) ( // statement(s) )… else ( // statement(s) )
Voorbeeld 3: C if… else Ladder
// Program to relate two integers using =,> or < symbol #include int main() ( int number1, number2; printf("Enter two integers: "); scanf("%d %d", &number1, &number2); //checks if the two integers are equal. if(number1 == number2) ( printf("Result: %d = %d",number1,number2); ) //checks if number1 is greater than number2. else if (number1> number2) ( printf("Result: %d> %d", number1, number2); ) //checks if both test expressions are false else ( printf("Result: %d < %d",number1, number2); ) return 0; )
Uitvoer
Voer twee gehele getallen in: 12 23 Resultaat: 12 <23
Genest als … anders
Het is mogelijk om een if… else
statement in de body van een ander if… else
statement op te nemen.
Voorbeeld 4: genest als… anders
Dit programma dat hieronder wordt gegeven, relateert twee gehele getallen met behulp van een van beide <
, >
en =
vergelijkbaar met het if… else
voorbeeld van de ladder. We zullen echter een geneste if… else
instructie gebruiken om dit probleem op te lossen.
#include int main() ( int number1, number2; printf("Enter two integers: "); scanf("%d %d", &number1, &number2); if (number1>= number2) ( if (number1 == number2) ( printf("Result: %d = %d",number1,number2); ) else ( printf("Result: %d> %d", number1, number2); ) ) else ( printf("Result: %d < %d",number1, number2); ) return 0; )
Als de hoofdtekst van een if… else
instructie slechts één instructie bevat, hoeft u geen haakjes te gebruiken ()
.
Deze code
if (a> b) ( print("Hello"); ) print("Hi");
is gelijk aan
if (a> b) print("Hello"); print("Hi");