English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base del linguaggio C

Controllo del flusso del linguaggio C

Funzione del linguaggio C

Array del linguaggio C

Puntatore del linguaggio C

Stringa del linguaggio C

Struttura del linguaggio C

File del linguaggio C

Altro C

Manuale di riferimento del linguaggio C

Espressione if...else del linguaggio C

In questo tutorial, imparerai l'istruzione if nel linguaggio C con l'aiuto di esempi (inclusi if ... else e if..else annidati).

Istruzione if in C

La sintassi di questa istruzione in C è:

if (test expression) 
{
   //Esegui le istruzioni quando l'espressione di test è vera
}

Come funziona l'istruzione if?

L'istruzione if valuta l'espressione di test tra parentesi quadre ().

  • Se il risultato del calcolo dell'espressione di test è true, esegue le istruzioni nel blocco principale dell'istruzione if.

  • Se il risultato del calcolo dell'espressione di test è false, l'istruzione if non esegue le istruzioni nel blocco principale.

Per ulteriori informazioni su quando l'espressione di test viene valutata come true (valore non zero) e false (0), controllarelazionaleoperatoreeOperatore logico.

Esempio 1: if

// Il programma visualizza un numero se è negativo
#include <stdio.h>
int main() {
    int number;
    printf("Inserisci un intero: ");
    scanf("%d", &number);
    // Se il numero è minore di 0, è true
    if (number < 0) {
        printf("Hai inserito %d.\n", number);
    }
    printf("L'istruzione if è semplice.");
    return 0;
}

Output 1

Inserisci un intero: -25
Hai inserito -25.
L'istruzione if è semplice.

Quando l'utente inserisce -25, il risultato del calcolo dell'espressione number<0 viene valutato come true. Pertanto,Hai inserito -25 Verrà visualizzato sullo schermo.

Output 2

Inserisci un intero: 5
L'istruzione if è semplice.

Quando l'utente inserisce 5, il risultato del calcolo dell'espressione number<0 è false e l'istruzione if non esegue le istruzioni nel blocco principale.

Estratto di if ... else in C

L'istruzione if può avere un blocco else opzionale. La sintassi dell'istruzione if..else è:

if (test expression) {
    // Se l'espressione di test è vera, esegui le istruzioni
}
else {
    // Se l'espressione di test è falsa, esegui le istruzioni
}

Come funziona if... else?

Se il risultato del calcolo dell'espressione di test è true,

  • Le istruzioni nel blocco if vengono eseguite.

  • Le istruzioni nel blocco else vengono saltate dall'esecuzione, ossia non vengono eseguite le istruzioni nel blocco else.

Se il valore dell'espressione di test è false,

  • Le istruzioni nel blocco else vengono eseguite

  • Le istruzioni nel blocco if vengono saltate, ossia non eseguite.

Esempio 2: if ... else

// Controlla se un numero intero è dispari o pari
#include <stdio.h>
int main() {
    int number;
    printf("Inserisci un intero: ");
    scanf("%d", &number);
    // Se il resto è 0, è true
    if (number%2 == 0) {
        printf("%d è un numero pari.", number);
    }
    else {
        printf("%d è un numero dispari.", number);
    }
    return 0;
}

Risultato di output

Inserisci un intero: 23
23 è un numero dispari.

Quando l'utente inserisce 23, (espressione di test) il risultato dell'evaluazione dell'espressione number%2==0 è false. Pertanto, verranno eseguite le istruzioni del blocco else.

Istruzione if...else if...else in C

L'istruzione if...else esegue due diversi块 di codice in base al valore di true o false dell'espressione di test (test expression). È adatto quando è necessario fare una scelta tra più possibilità.

if...else if...else ti permette di controllare tra più espressioni di test e eseguire diverse istruzioni.

Sintassi di if...else if...else

if (test_expression1) {
   // Istruzione
}
else if (test_expression2) {
   // Istruzione
}
else if (test_expression3) {
   // Istruzione
}
.
.
else {
   // Istruzione
}

Esempio 3: Esempio di C if...else if...else

// Il programma utilizza i simboli =, > o < per confrontare due interi
#include <stdio.h>
int main() {
    int number1, number2;
    printf("Inserisci due interi: ");
    scanf("%d %d", &number1, &number2);
    // Controllare se due interi sono uguali
    if (number1 == number2) {
        printf("Risultato: %d = %d", number1, number2);
    }
    // Controllare se number1 è maggiore di number2.
    else if (number1 > number2) {
        printf("Risultato: %d > %d", number1, number2);
    }
    // Se entrambe le espressioni di test sopra sono false, eseguire la seguente istruzione
    else {
        printf("Risultato: %d < %d", number1, number2);
    }
    return 0;
}

Risultato di output

Inserisci due interi: 12
23
Risultato: 12 < 23

Nesting di istruzioni if...else in C

È possibile includere un'altra istruzione if...else nel corpo di un'altra istruzione if...else.

Esempio 4: Dimostrazione di if...else annidato

Il programma di seguito fornisce un esempio di utilizzo di una qualsiasi struttura if...else che coinvolge due interi <, > e =, ma useremo istruzioni if...else annidate per risolvere il problema.

#include <stdio.h>
int main() {
    int number1, number2;
    printf("Inserisci due interi: ");
    scanf("%d %d", &number1, &number2);
    if (number1 >= number2) {
      if (number1 == number2) {
        printf("Risultato: %d = %d", number1, number2);
      }
      else {
        printf("Risultato: %d > %d", number1, number2);
      }
    }
    else {
        printf("Risultato: %d < %d", number1, number2);
    }
    return 0;
}

Se il corpo di un'istruzione if...else contiene solo una singola istruzione, non è necessario utilizzare parentesi graffe {}.

Ad esempio, il seguente codice

if (a > b) {
    print("Hello");
}
print("Hi");

Uguale a

if (a > b)
    print("Hello");
print("Hi");