L'istruzione if else if in C

L’istruzione di selezione if else è una struttura di controllo condizionata che permette di creare una struttura di selezione con due o più blocchi. Di seguito viene riportata la sua sintassi:



 
if(condizione_1){
    // blocco di codice
} else if(condizione_2){
    // blocco di codice
} else {
    // blocco di codice
}

Si parte con una istruzione if con tra parentesi una condizione o espressione e seguita da un blocco di codice che verrà eseguito se la condizione è verificata. Invece, se l’istruzione if non è verificata si passa all’istruzione else if e viene controllata la sua condizione, se vera viene eseguito il rispettivo blocco di codice, altrimenti si passa all’istruzione else, dove verrà eseguito il suo blocco di codice. Se la condizione del primo if è verificata viene eseguito solo il suo blocco di codice, dopodiché esce dalla struttura di controllo.

Le istruzione else if e l’istruzione else non sono obbligatorie, infatti per creare una struttura di controllo basterebbe semplicemente un if, però in questo modo verrebbe gestita solamente la situazione in cui la condizione risulta essere vera, invece inserendo anche l’istruzione else possiamo gestire la situazione in cui la condizione è falsa. Per esempio:



 
int a = 12;
if(a < 10){
    printf("A è minore di 10\n");
}


Output:

In questo caso la condizione dell’istruzione if non è verificata, di conseguenza non viene eseguita la printf, infatti “a” non è minore di 10. Se, invece, aggiungiamo anche la seguente parte di codice:



 
int a = 12;
if(a < 10){
    printf("A è minore di 10\n");
} else {
    printf("A è maggiore di 10\n");
}


Output: A è maggiore di 10

In questo modo viene eseguito l’istruzione else, stampando a video “A è maggiore di 10”.

Tra l’istruzione if e l'istruzione else, si possono inserire le istruzione else if che permettono di specificare ulteriori condizioni da controllare. Ovviamente se tutte le istruzioni if ed else if risultano essere false viene eseguita l’istruzione else (se definita). Esempio:



 
#include <stdio.h>

int main(){
    int a = 9;
    if(a%2 == 0){
        printf("A è un numero pari\n");
    } else if(a < 10){
        printf("A è un numero dispari minore di 10\n");
    } else {
        printf("A è un numero dispari maggiore di 10");
    }

    return 0;
}


Output: A è un numero dispari minore di 10

Essendo a = 9, la prima condizione non è verificata, mentre la seconda condizione è verificata, di conseguenza viene stampato a video “A è un numero dispari minore di 10”.
Se “a” invece fosse pari a 13, verrebbe eseguita l’istruzione else in quanto tutte le altre condizioni non sarebbero verificate, mentre con a = 12, la prima condizione sarebbe verificata e di conseguenza verrebbe stampato “A è un numero pari”.

Indice pagine linguaggio C: