Ebben az oktatóanyagban példák segítségével megtudhatja, hogy az if utasítás (ideértve az if… else és beágyazott, ha… else) a C programozásban.
C if Statement
Az utasítás szintaxisa a if
C programozásban:
if (test expression) ( // statements to be executed if the test expression is true )
Hogyan működik, ha az utasítás működik?
Az if
utasítás értékeli a zárójelben lévő teszt kifejezést ()
.
- Ha a teszt kifejezést igaznak értékelik, akkor a testen belüli utasítások
if
végrehajtásra kerülnek. - Ha a teszt kifejezést hamisra értékelik, akkor a testben lévő utasítások
if
nem kerülnek végrehajtásra.
Ha többet szeretne megtudni arról, mikor értékelik a teszt kifejezést igaz (nem nulla érték) és hamis (0) értékre, ellenőrizze a relációs és logikai operátorokat.
1. példa: if utasítás
// 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; )
1. kimenet
Adjon meg egy egész számot: -2 Ön megadta a -2 értéket. Az if utasítás könnyű.
Amikor a felhasználó -2 értéket ír be, a teszt kifejezést number<0
igazra értékelik. Ennélfogva a -2 értéket ad meg a képernyőn.
2. kimenet
Írjon be egész számot: 5 Az if utasítás egyszerű.
Amikor a felhasználó beírja az 5 értéket, a teszt kifejezést number<0
hamisra értékeli, és a testben lévő utasítás if
nem kerül végrehajtásra
C ha … más nyilatkozat
Az if
utasításnak opcionális else
blokkja lehet. Az utasítás szintaxisa if… else
:
if (test expression) ( // statements to be executed if the test expression is true ) else ( // statements to be executed if the test expression is false )
Mi lenne, ha… egy másik állítás működne?
Ha a teszt kifejezést igazra értékeljük,
- a testen belüli utasításokat
if
végrehajtják. - a testen belüli utasítások
else
kihagyásra kerülnek a végrehajtásból.
Ha a teszt kifejezést hamisra értékelik,
- a testen belüli utasításokat
else
végrehajtják - a testen belüli utasítások
if
kihagyásra kerülnek a végrehajtásból.
2. példa: ha… más utasítás
// 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; )
Kimenet
Írjon be egész számot: 7 7 páratlan egész szám.
Amikor a felhasználó beírja a 7-et, a teszt kifejezést number%2==0
hamisra értékeli. Ezért a testen belüli utasítás else
végrehajtásra kerül.
C ha … más létra
Az if… else
utasítás két különböző kódot hajt végre attól függően, hogy a teszt kifejezés igaz vagy hamis. Néha több mint 2 lehetőség közül kell választani.
Az if… else létra lehetővé teszi, hogy ellenőrizzen több teszt kifejezést és végrehajtson különböző utasításokat.
Szintaxisa, ha… más létra
if (test expression1) ( // statement(s) ) else if(test expression2) ( // statement(s) ) else if (test expression3) ( // statement(s) )… else ( // statement(s) )
3. példa: C, ha… más létra
// 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; )
Kimenet
Írjon be két egész számot: 12 23 Eredmény: 12 <23
Fészkel, ha… másképp
Lehetőség van egy if… else
állítás beillesztésére egy másik if… else
utasítás törzsébe .
4. példa: Beágyazott, ha… más
Ez az alábbiakban megadott program két egész számot kapcsol össze bármelyik felhasználásával <
, >
és =
hasonló a if… else
létra példájához. A if… else
probléma megoldásához azonban beágyazott állítást fogunk használni .
#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; )
Ha egy if… else
utasítás törzsében csak egy utasítás van, akkor nem kell zárójelet használni ()
.
Például ez a kód
if (a> b) ( print("Hello"); ) print("Hi");
egyenértékű
if (a> b) print("Hello"); print("Hi");