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 ifC 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 ifutasí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
ifvégrehajtásra kerülnek. - Ha a teszt kifejezést hamisra értékelik, akkor a testben lévő utasítások
ifnem 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<0igazra é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<0hamisra értékeli, és a testben lévő utasítás ifnem kerül végrehajtásra
C ha … más nyilatkozat
Az ifutasításnak opcionális elseblokkja 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
ifvégrehajtják. - a testen belüli utasítások
elsekihagyásra kerülnek a végrehajtásból.
Ha a teszt kifejezést hamisra értékelik,
- a testen belüli utasításokat
elsevégrehajtják - a testen belüli utasítások
ifkihagyá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==0hamisra értékeli. Ezért a testen belüli utasítás elsevégrehajtásra kerül.
C ha … más létra
Az if… elseutasí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… elseutasí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… elselétra példájához. A if… elseproblé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… elseutasí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");








