*
* Per completare la panoramica sull'IF, vedremo come annidarlo.
* Con cio' si intende mettere una condizione IF all'interno di altre
* condizioni IF. Ossia fissare piu' di una condizione per l'esecuzione
* delle istruzioni. Ad esempio:
*
* if (pippo>10)
* {
* if (pippo<20)
* printf("\nPippo e' compreso tra 11 e 19\n");
* }
* else printf ("\nPippo non mi interessa\n");
*
* La traduzione potrebbe essere: "se pippo e' maggiore di 10, esegui
* la seconda condizione if: se anche questa e' vera, ossia se pippo e'
* minore di 20, allora esegui il printf relativo. Altrimenti stampiamo
* il printf relativo al nostro scarso interesse per pippo".
* In pratica pippo deve superare 2 condizioni if per passare "l'esame".
* Da notare che l'esempio qua sopra ha un "errore", infatti se pippo fosse
* maggiore di 10, sarebbe eseguito cio' che e' tra parentesi graffe, ossia
* l'altro if, che se risultasse falso, non avendo un else, porterebbe
* all'uscita, senza stampare che pippo non ci interessa. Infatti se
* ricordate l'if/else fa eseguire O cio' che segue l'if, O cio' che segue
* l'else. L'unico else presente nel listatino si riferisce all'if "padre",
* il primo, per cui se questo risulta vero non sara' eseguito il messaggio
* dopo l'else. Se si vuole che sia stampato un messaggio di disinteresse
* anche quando e' falso il secondo if, occorre mettergli un else:
*
* if (pippo>10) * Prima condizione da superare *
* {
* if (pippo<20) * Seconda *
* printf("\nPippo e' compreso tra 11 e 19\n");
* else printf("\nPippo e' grande, non mi interessa\n");
* }
* else printf ("\nPippo e' piccolo, non mi interessa\n");
*
* In questo modo possiamo anche dare un messaggio piu' preciso, dicendo
* se l'esame e' fallito al primo o al secondo if, ossia se il numero
* e' troppo piccolo o troppo grande.
* Quindi occorre stare attenti a non "annodarsi" con gli annidamenti,
* specialmente se si usano piu' istruzioni else: potremmo perdere il
* senso dell'orientamento ed ottenere risultati inattesi.
*/
#include <stdio.h> /* Includiamo la libreria standard */
main() /* Funzione principale, eseguita per prima */
{ /* Inizio della funzione main() */
int pippo; /* Definiamo una variabile intera pippo che servira'
* per il costrutto if */
printf("\nDammi il valore per Pippo: ");
scanf("%d",&pippo);
if (pippo>10) /* Prima condizione da superare */
{
if (pippo<20) /* Seconda */
printf("\nPippo e' compreso tra 11 e 19\n");
else printf("\nPippo e' grande, non mi interessa\n");
}
else printf ("\nPippo e' piccolo, non mi interessa\n");
} /* Fine della funzione main() */
/* Ci sono altri tipi di diramazione tramite il costrutto if/else, ma li
* vedremo in seguito quando serviranno effettivamente.
*/
