C ha ... más nyilatkozat

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"); 

érdekes cikkek...