C if ... else Istruzione

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 ifdell'istruzione nella programmazione C è:

 if (test expression) ( // statements to be executed if the test expression is true )

Come funziona l'istruzione if?

L' ifistruzione valuta l'espressione di prova all'interno delle parentesi ().

  • Se l'espressione di test viene valutata su true, ifvengono eseguite le istruzioni all'interno del corpo di .
  • Se l'espressione di test viene valutata come falsa, le istruzioni all'interno del corpo di ifnon 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<0viene 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<0viene valutata come falsa e l'istruzione all'interno del corpo di ifnon viene eseguita

C if … else Istruzione

L' ifistruzione può avere un elseblocco opzionale . La sintassi if… elsedell'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,

  • ifvengono eseguite le istruzioni all'interno del corpo di .
  • le istruzioni all'interno del corpo di elsevengono saltate dall'esecuzione.

Se l'espressione di test viene valutata come falsa,

  • elsevengono eseguite le istruzioni all'interno del corpo di
  • le istruzioni all'interno del corpo di ifvengono 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==0viene valutata come falsa. Quindi, elseviene eseguita l'istruzione all'interno del corpo di .

C se … altro Ladder

L' if… elseistruzione 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… elsedichiarazione all'interno del corpo di un'altra if… elsedichiarazione.

Esempio 4: annidato if … else

Questo programma dato di seguito mette in relazione due numeri interi che li usano <, >e in modo =simile if… elseall'esempio del ladder. Tuttavia, utilizzeremo if… elseun'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… elseun'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"); 

Articoli interessanti...