L'istruzione if else if nel linguaggio C
La struttura di controllo if else if mi permette di creare una struttura di selezione con due o più blocchi.
if (condizione) {
// codice 1
}
else if (condizione2) {
// codice 2
}
else if (condizione3) {
// codice 3
}
Come funziona
Se la condizione 1 è vera, il programma esegue il blocco di codice 1 ed esce dalla struttura di controllo.
Se la condizione 1 è falsa, il programma controlla se la condizione 2 è vera.
Se la condizione 2 è vera, il programma esegue il blocco di codice 2 ed esce dalla struttura di controllo.
Se la condizione 2 è falsa, il programma controlla se la condizione 3 è vera.
Se la condizione 3 è vera, il programma esegue il blocco di codice 3 ed esce dalla struttura di controllo.
Se nessuna condizione è vera (sono tutte false), la struttura non esegue nessun blocco di codice.
Quindi, la struttura potrebbe anche non eseguire nessun blocco di codice.
Nota. Alla fine della struttura di controllo posso aggiungere anche un'opzione else (altrimenti) che viene eseguita quando tutte le altre condizioni sono false. In questo caso il programma esegue sempre un blocco di codice tra quelli presenti nella struttura di controllo.
Un esempio pratico
Esempio 1 ( if else if )
In questo programma chiedo all'utente di digitare un numero, la temperatura esterna.
Poi stampo un messaggio a video a seconda se la temperatura è maggiore di 25, compresa tra 10-25, inferiore di 10 gradi.
#include <stdio.h>
int main()
{
int gradi;
printf("Digita la temperatura: ");
scanf("%d", &gradi);
if (gradi>25) {
printf("Fa caldo");
}
else if (gradi>=10)
{
printf("Né caldo, né freddo");
}
else if (gradi<10)
{
printf("Fa freddo");
}
return 0;
}
Ad esempio, se digito 30 l'output del programma è
Digita la temperatura: 30
Fa caldo
Se digito 13 l'output del programma è
Digita la temperatura: 13
Né caldo, né freddo
Se digito 5 l'output del programma è
Digita la temperatura: 5
Fa freddo
Esempio 2 ( if else if + else )
Posso riscrivere il programma precedente combinando le clausole else if con la clausola else.
La clausola else non è vincolata a nessuna condizione perché viene eseguita se tutte le clausole precedenti else if sono false.
#include <stdio.h>
int main()
{
int gradi;
printf("Digita la temperatura: ");
scanf("%d", &gradi);
if (gradi>25) {
printf("Fa caldo");
}
else if (gradi>=10)
{
printf("Né caldo, né freddo");
}
else
{
printf("Fa freddo");
}
return 0;
}
Il risultato finale è sempre lo stesso.
E così via.