PROGRAMMIAMO
C++ - Istruzione If

Istruzione if

L'istruzione if serve per introdurre in un programma la selezione fra due diversi percorsi. La sintassi è la seguente:

if (condizione)
    {
   istruzione1;
   istruzione2;
   ...
    }

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):

Esempio

Il seguente esempio di istruzione if scambia il contenuto delle variabili a e b, nel caso in cui a sia minore di b:

if (a<b)
    {
   tmp=a;
   a=b;
   b=tmp;
    }

 

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:

if (a<10)
    {

    if (a<5)
        {
        b = a*2;
        }

   b=a;
   }

 

Caso particolare: una sola istruzione da eseguire

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;
    }

 

Indentazione

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:

 

Operatori di confronto

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:

if (a==b)
   b=a+1;

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.

 

Operatori logici

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à:

if (num >= 0 && num <=10)
   {
   num = num + 1;
   }

 

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:

if (numero)
   cout<<"Valore diverso da zero!";

invece di

if (numero!=0)
   cout<<"Valore diverso da zero!";

Questa equivalenza fra 0 e false e not-zero e true viene usata spesso dai programmatori esperti e anche noi ci torneremo nel seguito.

 

 

link precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it