I denne vejledning lærer du om if-sætning (herunder hvis … ellers og nestet hvis … ellers) i C-programmering ved hjælp af eksempler.
C hvis erklæring
Syntaksen for ifudsagnet i C-programmering er:
if (test expression) ( // statements to be executed if the test expression is true )
Hvordan hvis udsagn fungerer?
Den ifopgørelse evaluerer testen udtryk inde i parentesen ().
- Hvis testudtrykket vurderes til sandt,
ifudføres udsagn inde i kroppen . - Hvis testudtrykket evalueres til falsk,
ifudføres udsagn inde i kroppen ikke.

For at lære mere om hvornår testudtryk evalueres til sandt (ikke-nul-værdi) og falsk (0), skal du kontrollere relationelle og logiske operatorer.
Eksempel 1: hvis udsagn
// 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; )
Udgang 1
Indtast et heltal: -2 Du indtastede -2. Hvis-erklæringen er let.
Når brugeren indtaster -2, number<0evalueres testudtrykket til sandt. Derfor indtastes -2 vises på skærmen.
Udgang 2
Indtast et heltal: 5 if-sætningen er let.
Når brugeren indtaster 5, number<0evalueres testudtrykket til falsk, og udsagnet inde i kroppen ifudføres ikke
C hvis… ellers Erklæring
Den ifsætning kan have en valgfri elseblok. Syntaksen for if… elseudsagnet er:
if (test expression) ( // statements to be executed if the test expression is true ) else ( // statements to be executed if the test expression is false )
Hvordan hvis … ellers erklæring fungerer?
Hvis testudtrykket vurderes til sandt,
- udsagn inde i kroppen
ifudføres. - udsagn inde i kroppen
elsespringes over fra udførelse.
Hvis testudtrykket vurderes til falsk,
- udsagn inde i kroppen
elseudføres - udsagn inde i kroppen
ifspringes over fra udførelse.

Eksempel 2: hvis … ellers udsagn
// 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
Indtast et heltal: 7 7 er et ulige heltal.
Når brugeren indtaster 7, number%2==0evalueres testudtrykket til falsk. Derfor er udsagnet inde i kroppen elseudført.
C hvis… ellers Ladder
Den if… elsesætning udfører to forskellige koder, afhængigt af om testen udtryk er sand eller falsk. Nogle gange skal der vælges ud fra mere end to muligheder.
Stigen if … else giver dig mulighed for at kontrollere mellem flere testudtryk og udføre forskellige udsagn.
Syntaks for hvis… ellers Ladder
if (test expression1) ( // statement(s) ) else if(test expression2) ( // statement(s) ) else if (test expression3) ( // statement(s) )… else ( // statement(s) )
Eksempel 3: C hvis … ellers 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; )
Produktion
Indtast to heltal: 12 23 Resultat: 12 <23
Indlejret hvis … ellers
Det er muligt at inkludere en if… elseerklæring inde i kroppen af en anden if… elseerklæring.
Eksempel 4: Indlejret hvis … ellers
Dette program givet nedenfor angår to heltal anvendelse af enten <, >og =svarende til if… elsestigen eksempel. Vi bruger dog en indlejret if… elseerklæring til at løse dette 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; )
Hvis brødteksten i en if… elseerklæring kun har én sætning, behøver du ikke bruge parenteser ().
For eksempel denne kode
if (a> b) ( print("Hello"); ) print("Hi");
svarer til
if (a> b) print("Hello"); print("Hi");








