C if ... else-verklaring

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 ifinstructie in C-programmering is:

 if (test expression) ( // statements to be executed if the test expression is true )

Hoe als statement werkt?

De ifinstructie evalueert de testuitdrukking tussen haakjes ().

  • Als de testuitdrukking als waar wordt geëvalueerd, worden instructies in de hoofdtekst van ifuitgevoerd.
  • Als de testuitdrukking als onwaar wordt geëvalueerd, worden instructies in de hoofdtekst van ifniet 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<0geë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<0geëvalueerd als false en wordt de instructie in de body van ifniet uitgevoerd

C if… else Statement

De ifinstructie kan een optioneel elseblok hebben. De syntaxis van de if… elseinstructie 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 ifworden uitgevoerd.
  • verklaringen in de body van elseworden overgeslagen voor uitvoering.

Als de testuitdrukking wordt geëvalueerd als onwaar,

  • verklaringen in de body van elseworden uitgevoerd
  • verklaringen in de body van ifworden 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==0geëvalueerd als onwaar. Daarom wordt de instructie in de body van elseuitgevoerd.

C als… anders Ladder

De if… elseinstructie 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… elsestatement in de body van een ander if… elsestatement 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… elsevoorbeeld van de ladder. We zullen echter een geneste if… elseinstructie 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… elseinstructie 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"); 

Interessante artikelen...