În acest tutorial, veți afla despre declarația if (inclusiv if … else și imbricată if … else) în programarea C cu ajutorul exemplelor.
Declarație C if
Sintaxa if
declarației din programarea C este:
if (test expression) ( // statements to be executed if the test expression is true )
Cum funcționează declarația?
if
Declarația evaluează expresia de test din interiorul paranteza ()
.
- Dacă expresia testului este evaluată la adevărată,
if
se execută instrucțiunile din interiorul corpului . - Dacă expresia testului este evaluată ca fiind falsă, declarațiile din corpul lui
if
nu sunt executate.
Pentru a afla mai multe despre momentul în care expresia testului este evaluată la adevărat (valoare diferită de zero) și falsă (0), verificați operatorii relaționali și logici.
Exemplul 1: declarație if
// 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; )
Ieșire 1
Introduceți un număr întreg: -2 Ați introdus -2. Afirmația if este ușoară.
Când utilizatorul introduce -2, expresia testului number<0
este evaluată la adevărat. Prin urmare, ați introdus -2 este afișat pe ecran.
Ieșire 2
Introduceți un număr întreg: 5 Instrucțiunea if este ușoară.
Când utilizatorul introduce 5, expresia testului number<0
este evaluată la fals și declarația din corpul lui if
nu este executată
C dacă … altfel Declarație
if
Declarația poate avea un opțional else
bloc. Sintaxa if… else
declarației este:
if (test expression) ( // statements to be executed if the test expression is true ) else ( // statements to be executed if the test expression is false )
Cum dacă … altfel funcționează declarația?
Dacă expresia testului este evaluată la adevărată,
- declarațiile din interiorul corpului
if
sunt executate. - declarațiile din interiorul corpului
else
sunt omise de la executare.
Dacă expresia testului este evaluată la fals,
- declarațiile din interiorul corpului
else
sunt executate - declarațiile din interiorul corpului
if
sunt omise de la executare.
Exemplul 2: declarație dacă … else
// 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; )
Ieșire
Introduceți un număr întreg: 7 7 este un număr impar.
Când utilizatorul introduce 7, expresia testului number%2==0
este evaluată ca fiind falsă. Prin urmare, declarația din interiorul corpului else
este executată.
C dacă … altfel Scară
Instrucțiunea if… else
execută două coduri diferite, în funcție de faptul dacă expresia testului este adevărată sau falsă. Uneori, trebuie făcută o alegere din mai mult de 2 posibilități.
Scara if … else vă permite să verificați între mai multe expresii de test și să executați instrucțiuni diferite.
Sintaxa lui if … else Scara
if (test expression1) ( // statement(s) ) else if(test expression2) ( // statement(s) ) else if (test expression3) ( // statement(s) )… else ( // statement(s) )
Exemplul 3: C dacă … altfel Scară
// 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; )
Ieșire
Introduceți două numere întregi: 12 23 Rezultat: 12 <23
Cuibărit dacă … altfel
Este posibil să includeți o if… else
declarație în corpul unei alte if… else
declarații.
Exemplul 4: cuibărit dacă … altfel
Acest program de mai jos se referă două numere întregi folosind fie <
, >
și =
similar cu if… else
exemplul scara lui. Cu toate acestea, vom folosi o if… else
declarație imbricată pentru a rezolva această 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; )
Dacă corpul unei if… else
instrucțiuni are o singură instrucțiune, nu trebuie să utilizați paranteze ()
.
De exemplu, acest cod
if (a> b) ( print("Hello"); ) print("Hi");
este echivalent cu
if (a> b) print("Hello"); print("Hi");