I den här handledningen lär du dig om if-uttalande (inklusive om … annars och kapslat om … annat) i C-programmering med hjälp av exempel.
C om uttalande
Syntaksen för ifuttalandet i C-programmering är:
if (test expression) ( // statements to be executed if the test expression is true )
Hur om uttalande fungerar?
Det ifuttalandet utvärderar test uttryck inom parentes ().
- Om testuttrycket utvärderas till sant
ifutförs uttalanden i kroppen . - Om testuttrycket utvärderas till falskt
ifutförs inte påståenden i kroppen .

För att lära dig mer om när testuttryck utvärderas till sant (icke-nollvärde) och falskt (0), kontrollera relations- och logiska operatorer.
Exempel 1: if uttalande
// 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; )
Utgång 1
Ange ett heltal: -2 Du angav -2. If-uttalandet är enkelt.
När användaren anger -2 number<0utvärderas testuttrycket till sant. Därför har du angett -2 visas på skärmen.
Utgång 2
Ange ett heltal: 5 If-uttalandet är enkelt.
När användaren anger 5 number<0utvärderas testuttrycket till falskt och uttalandet inuti kroppen ifexekveras inte
C if… else Uttalande
Det ifuttalandet kan ha ett valfritt elseblock. Syntaxen för if… elseuttalandet är:
if (test expression) ( // statements to be executed if the test expression is true ) else ( // statements to be executed if the test expression is false )
Hur om … annars uttalande fungerar?
Om testuttrycket utvärderas till sant,
- uttalanden inuti kroppen
ifutförs. - uttalanden inuti kroppen
elsehoppas över från utförandet.
Om testuttrycket utvärderas till falskt,
- uttalanden inuti kroppen
elseutförs - uttalanden inuti kroppen
ifhoppas över från utförandet.

Exempel 2: om … annars uttalande
// 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; )
Produktion
Ange ett heltal: 7 7 är ett udda heltal.
När användaren anger 7 number%2==0utvärderas testuttrycket till falskt. Därför elseutförs uttalandet inuti kroppen .
C om … annars stege
Det if… elseuttalandet utför två olika koder beroende på om test uttrycket är sant eller falskt. Ibland måste ett val göras från mer än två möjligheter.
Stegen if … else låter dig kontrollera mellan flera testuttryck och utföra olika uttalanden.
Syntax för if … else Ladder
if (test expression1) ( // statement(s) ) else if(test expression2) ( // statement(s) ) else if (test expression3) ( // statement(s) )… else ( // statement(s) )
Exempel 3: C om … annars stege
// 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; )
Produktion
Ange två heltal: 12 23 Resultat: 12 <23
Inkapslad om … annars
Det är möjligt att inkludera ett if… elseuttalande i kroppen av ett annat if… elseuttalande.
Exempel 4: Kapslat om … annars
Detta program som ges nedan relaterar till två heltal med endera <, >och =liknar if… elsestegeexemplet. Vi kommer dock att använda ett kapslat if… elseuttalande för att lösa detta problem.
#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; )
Om kroppen i ett if… elseuttalande bara har ett uttalande behöver du inte använda parenteser ().
Till exempel den här koden
if (a> b) ( print("Hello"); ) print("Hi");
är ekvivalent med
if (a> b) print("Hello"); print("Hi");








