IF annidato nel linguaggio C
Le istruzioni IF possono essere implementate l'una dentro l'altra per gestire al meglio gli eventi e sono dette IF annidate.
Per annidare più le istruzioni IF si inseriscono altre IF all'interno delle parentesi graffe.
Un esempio pratico
Nel seguente codice sorgente è stata aggiunta una seconda istruzione IF nell'attributo ELSE della prima istruzione IF.
if ( a > b ) {
max =a;
} else {
if ( a<b ) {
max=b;
}
}
La seconda IF gestisce un secondo blocco di istruzioni condizionato all'espressione di controllo ( A<B ).
Quando la prima espressione di controllo ( A>B ) è falsa, il programma esegue il blocco di istruzioni dell'istruzione ELSE dove è presente una seconda istruzione IF che verifica se A<B.
In questo caso, l'assegnazione della variabile MAX al valore della variabile B viene eseguito soltanto se realmente la variabile B è maggiore ( B>A ). Non viene eseguito, invece, nel caso in cui le due variabili sono uguali ( A=B ).
La seguente rappresentazione grafica mostra l'algoritmo di una IF annidata. Confrontando l'algoritmo con quello di una IF ELSE balza immediatamente agli occhi la differenza.
L'istruzione IF annidata ci ha così permesso di migliorare il salto condizionale del paragrafo precedente.