Istruzione if
L'istruzione if serve per introdurre in un programma la selezione fra due diversi percorsi. La sintassi è la seguente:
La sequenza di istruzioni (istruzione1, istruzione2...) racchiusa fra graffe viene eseguita solo se la condizione è vera. Se la condizione è falsa non viene eseguito nulla.
L'istruzione if corrisponde in un diagramma di flusso a un blocco di test con due uscite (indicate in figura con SI e NO):
Il seguente esempio di istruzione if scambia il contenuto delle variabili a e b, nel caso in cui a sia minore di b:
Blocco o sequenza di istruzioni
Le istruzioni fra parentesi graffe costituiscono un blocco o sequenza di istruzioni. In pratica un blocco di istruzioni è una sorta di mega-istruzione ovvero un'istruzione composta da più istruzioni singole.
E' interessante osservare che in C è possibile annidare un blocco dentro un altro, come nell'esempio seguente:
Nel caso particolare in cui la sequenza contenga una sola istruzione, è possibile omettere le parentesi graffe:
if (a<b) if (a<b)
{ OPPURE b=a;
b=a;
}
Col termine indentazione si intende la tecnica comunemente usata nella scrittura dei programmi, consistente nel far rientrare le istruzioni che dipendono da altre. Il rientro viene ottenuto premendo una o più volte il tasto TAB sulla tastiera del computer e serve per migliorare la leggibilità del programma, ma non ha nessuna influenza sul funzionamento del programma stesso.
Indentare correttamente un programma è tuttavia molto importante perché consente di analizzarlo più semplicemente e di trovare più rapidamente eventuali errori:
Gli operatori di confronto che è possibile usare nella condizione dell'if sono:
Si noti che in C l'operatore di uguaglianza (==) è indicato diversamente dall'operatore di assegnazione (=). Essi hanno infatti due significati completamente differenti. Si consideri il seguente esempio:
Il significato dell'esempio, tradotto a parole, è: se il valore di a è uguale al valore di b, assegna a b il valore di a + 1.
Il fatto che l'assegnazione (=) non è un'uguaglianza (==) emerge con chiarezza da istruzioni del tipo:
var = var + 1;
L'espressione precedente infatti ha senso solo in un'assegnazione, poiché dal punto di vista matematico l'uguaglianza di var e di var + 1 sarebbe ovviamente impossibile.
Gli operatori logici, usati per concatenare più condizioni in un if, sono:
Ecco un esempio di concatenazione di due condizioni che verifica se num è compreso fra 0 e 10 e, in caso affermativo, lo incrementa di una unità:
ATTENZIONE:
Nel linguaggio C (e nei linguaggi da esso derivati), il valore 0 viene considerato come falso (false), mentre qualsiasi valore diverso da 0 viene considerato come vero (true). Per esempio si potrebbe anche scrivere:
invece di
Questa equivalenza fra 0 e false e not-zero e true viene usata spesso dai programmatori esperti e anche noi ci torneremo nel seguito.
Sito realizzato in base al template offerto da
http://www.graphixmania.it