  |
Condizionale if |
if(<condizione>)
<comando>
else
<comando>
Il primo comando strutturato che vediamo è il comando if. La caratteristica di questo comando è quello di essere un comando composto. Questo è solo il primo dei comandi composti che vedremo più avanti nel corso di questo corso. Per comando strutturato si intende un comando che contiene di se un altro sottocomando. Esaminando il listato si vede come funziona. C'è una parte, if() che è la parte principale del comando. Sintatticamente questo comando è incompleto in quanto occorre specificare delle altre parti. Tra parentesi va posta una espressione, mentre dopo il comando va posto un altro comando. Delle espressioni abbiamo già parlato in abbondanza nella prima parte del corso. Il sottocomando invece è un qualsiasi comando, tra quelli già visti e quelli che vedremo. Nel caso più semplice il sottocomando di if può essere un comando semplice. Quindi if(a>1) b=2; è una if completa. Dopo la if può essereci un comando composto, quindi in questo caso possiamo scrivere if(a>1) { b=2; c=3; }. In questo caso si vede chiaramente l'utilità delle graffe. Due comandi vengono raggruppati in uno solo per essere il sottocomaando della if. Dopo la if può esserci al più un comando e quindi si usano le graffe per raggruppare.
  |
la <condizione> deve essere una espressione booleana |
Il comportamento del comando è quello di eseguire il sottocomandosolo
se la condizione è verificata. La condizione deve essere una
espresione booleana. Cioè dopo aver effettuato i calcoli il risultato
deve essere vero o falso. Tipicamente questo si ottiene con
espressioni come a==b oppure a > b && c > d. Si può
notare infatti come gli operatori relazionali ritornino appunto vero o
falso, e combinando vero o falso si ottiene sempre un risultato
booleano.
  |
l'else lega l'if più vicino |
L'if e basta esegue un comando solo se una condizione è verificata. È comunissimo voler fare qualcosa ancbe nel caso una condizione non è verificata. Per questo motivo l'if ammette una variante più complessa in cui esiste una parte eseguita quando la condizinone è falsa. In questo caso è presente la parte else, in cui viene specificato anche un comando. Questo comando viene eseguito solo quando la condizione è false.
  |
In caso di ambiguità si devono usare le graffe esplicitamente |
// 1
if(<condizione>)
// 2
if(<condizione>)
<comando>
// riferito a 2
else
<comando>
// 3
if(<condizione>)
{
// 4
if(<condizione>)
<comando>
} // riferito a 3
else
<comando>
Il comando di if o else può essere a sua volta un altro if o else, Si può verificare il caso in cui un else può essere riferito a due diversi if, come nell'esempio in figura. La regola è che l'else lega l'if più vicino. Questo è valido anche se il programmatore indenta (ovvero mette degli spazi) per indicare una diversa associazione. Se si vuole forzare una associazione in cui l'else lega con l'if più lontano, bisogna "staccare" l'if mediante l'uso esplicito delle parentesi graffe.
|