In questo tutorial, imparerai a conoscere l'istruzione if (incluso if … else e annidato if … else) nella programmazione C con l'aiuto di esempi.
C if Statement
La sintassi if
dell'istruzione nella programmazione C è:
if (test expression) ( // statements to be executed if the test expression is true )
Come funziona l'istruzione if?
L' if
istruzione valuta l'espressione di prova all'interno delle parentesi ()
.
- Se l'espressione di test viene valutata su true,
if
vengono eseguite le istruzioni all'interno del corpo di . - Se l'espressione di test viene valutata come falsa, le istruzioni all'interno del corpo di
if
non vengono eseguite.
Per ulteriori informazioni su quando l'espressione di test viene valutata su true (valore diverso da zero) e false (0), controllare gli operatori relazionali e logici.
Esempio 1: istruzione 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; )
Uscita 1
Inserisci un numero intero: -2 Hai inserito -2. L'istruzione if è facile.
Quando l'utente immette -2, l'espressione di test number<0
viene valutata su true. Quindi, hai inserito -2 viene visualizzato sullo schermo.
Uscita 2
Immettere un numero intero: 5 L'istruzione if è facile.
Quando l'utente immette 5, l'espressione di test number<0
viene valutata come falsa e l'istruzione all'interno del corpo di if
non viene eseguita
C if … else Istruzione
L' if
istruzione può avere un else
blocco opzionale . La sintassi if… else
dell'istruzione è:
if (test expression) ( // statements to be executed if the test expression is true ) else ( // statements to be executed if the test expression is false )
Come funziona if… else?
Se l'espressione di test viene valutata su true,
if
vengono eseguite le istruzioni all'interno del corpo di .- le istruzioni all'interno del corpo di
else
vengono saltate dall'esecuzione.
Se l'espressione di test viene valutata come falsa,
else
vengono eseguite le istruzioni all'interno del corpo di- le istruzioni all'interno del corpo di
if
vengono saltate dall'esecuzione.
Esempio 2: istruzione if … 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; )
Produzione
Immettere un numero intero: 7 7 è un numero intero dispari.
Quando l'utente immette 7, l'espressione di test number%2==0
viene valutata come falsa. Quindi, else
viene eseguita l'istruzione all'interno del corpo di .
C se … altro Ladder
L' if… else
istruzione esegue due codici diversi a seconda che l'espressione di test sia vera o falsa. A volte, è necessario scegliere tra più di 2 possibilità.
Il ladder if … else consente di controllare tra più espressioni di test ed eseguire istruzioni diverse.
Sintassi di if … else Ladder
if (test expression1) ( // statement(s) ) else if(test expression2) ( // statement(s) ) else if (test expression3) ( // statement(s) )… else ( // statement(s) )
Esempio 3: C if … else 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; )
Produzione
Immettere due numeri interi: 12 23 Risultato: 12 <23
Annidato se … altro
È possibile includere una if… else
dichiarazione all'interno del corpo di un'altra if… else
dichiarazione.
Esempio 4: annidato if … else
Questo programma dato di seguito mette in relazione due numeri interi che li usano <
, >
e in modo =
simile if… else
all'esempio del ladder. Tuttavia, utilizzeremo if… else
un'istruzione annidata per risolvere questo problema.
#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; )
Se il corpo di if… else
un'istruzione ha una sola istruzione, non è necessario utilizzare le parentesi ()
.
Ad esempio, questo codice
if (a> b) ( print("Hello"); ) print("Hi");
è equivalente a
if (a> b) print("Hello"); print("Hi");