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 if
udsagnet i C-programmering er:
if (test expression) ( // statements to be executed if the test expression is true )
Hvordan hvis udsagn fungerer?
Den if
opgørelse evaluerer testen udtryk inde i parentesen ()
.
- Hvis testudtrykket vurderes til sandt,
if
udføres udsagn inde i kroppen . - Hvis testudtrykket evalueres til falsk,
if
udfø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<0
evalueres 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<0
evalueres testudtrykket til falsk, og udsagnet inde i kroppen if
udføres ikke
C hvis… ellers Erklæring
Den if
sætning kan have en valgfri else
blok. Syntaksen for if… else
udsagnet 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
if
udføres. - udsagn inde i kroppen
else
springes over fra udførelse.
Hvis testudtrykket vurderes til falsk,
- udsagn inde i kroppen
else
udføres - udsagn inde i kroppen
if
springes 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==0
evalueres testudtrykket til falsk. Derfor er udsagnet inde i kroppen else
udført.
C hvis… ellers Ladder
Den if… else
sæ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… else
erklæring inde i kroppen af en anden if… else
erklæring.
Eksempel 4: Indlejret hvis … ellers
Dette program givet nedenfor angår to heltal anvendelse af enten <
, >
og =
svarende til if… else
stigen eksempel. Vi bruger dog en indlejret if… else
erklæ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… else
erklæ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");