05: Prendere delle decisioni: IF…ELSE

Con le istruzioni eseguibili di C siamo in grado di eseguire delle azioni, come eseguire calcoli aritmetici, stampare dati sullo schermo o prenderli direttamente dalla tastiera, ma anche prendere delle decisioni.
In questo articolo cercheremo di spiegarvi come funziona il comando if, che consente a un programma di prendere delle decisioni basandoci sulla veridicità di espressioni chiamate, per l’appunto, condizioni. Nel caso in cui la condizione sia stata soddisfatta, ovvero sia vera, allora verrà eseguita l’azione presente all’interno del corpo dell’istruzione if, qualora la condizione risulti falsa, l’istruzione presente all’interno del corpo non verrà presa in considerazione. Dopo il completamento del comando if , indipendentemente dal fatto che l’istruzione del corpo verrà eseguita o meno, l’esecuzione procederà con l’istruzione successiva al comando if.

Formalmente:

if(condizione) {

istruzioni;

}

Le parentesi graffe contengono il corpo del comando if; nel caso in cui all’interno del corpo ci fosse una sola istruzione potete anche omettere le parentesi .

Possiamo formare le condizioni del comando if usando gli operatori di uguaglianza e gli operatori relazionali.

Operatori di uguaglianza                       Esempio                      Significato

           ==                                                   x == y                          x è uguale a y
           !=                                                    x !=  y                          x non è uguale a y

Operatori relazionali

           >                                                     x >   y                           x è maggiore di y
           <                                                     x <   y                           x è minore di y
           >=                                                   x >= y                           x è maggiore o uguale a y
           <=                                                   x <= y                           x è minore o uguale a y

Il linguaggio C fornisce anche degli operatori logici che ci permettono di formare delle condizioni più complesse a partire da quelle più semplici che abbiamo trattato sopra. Gli operatori logici sono: && (AND logico), || (OR logico) e ! (NOT logico).               

            AND

 if(condizione1  &&  condizione2)  {…}
Viene eseguito solo se sono vere entrambe le condizioni

Cond1    Cond2    Cond1&&Cond2

falso         falso           |falso                   
falso         vero           |falso
vero          falso          |falso
vero          vero           |vero                  

             OR

  if(condizione1  ||  condizione2)  {…}
 Viene eseguito se almeno una delle condizioni è vera

Cond1    Cond2    Cond1||Cond2                                    

falso         falso            |falso                                 
falso         vero            |vero
vero         falso            |vero
vero         vero             |vero                  

            NOT

 if( !condizione1 )  {…}
Viene eseguito se la condizione è falsa

Cond1                      !Cond1                                                                 

falso                          |vero                                                        
vero                          |falso

Il comando di selezione if esegue l’azione indicata solo quando la condizione è vera; in caso contrario, l’azione è ignorata. Il comando di doppia selezione if…else consente al programmatore di specificare che, nel caso in cui la condizione sia vera, dovrà essere eseguita una azione differente da quella che, invece, si dovrà eseguire qualora la condizione sia falsa . Per esempio:

Se il voto di un esame è maggiore di 18 allora
              Visualizzo “Promosso”
Altrimenti

             Visualizzo “Rimandato”

Riscritto in pseudocodice:

if (esame >= 18) {

printf("Promosso\n");

}

else {

printf("Rimandato\n");

}

Il C fornisce inoltre l’operatore condizionale ( ?: ) che è strettamente correlato con il comando if…else. Questo operatore è l’unico ternario di C, infatti accetta tre operandi. Gli operandi, insieme all’operatore condizionale, formano una espressione condizionale. Il primo operando è una condizione, il secondo operando è il valore che assumerà l’intera espressione condizionale, nel caso la condizione sia vera, mentre il terzo operando è il valore che assumerà l’intera espressione condizionale, se la condizione è falsa.

printf("%s\n", esame>=18 ? "Promosso" : "Rimandato");

E con questo è tutto, spero di avervi fornito informazioni utili e di essere stato chiaro nella spiegazione. Come al solito se avete domande, non esitate a farcele! Alla prossima!

Please follow and like us: