Sei sulla pagina 1di 2

Riassunto delle Strutture di Comando del Linguaggio C++

In generale ogni comando del C++ deve essere terminato con il carattere punto-virgola (cioè “;”).

La Coesione di più Comandi in un Unico Blocco


Per riunire più comandi in un unico “multi-comando” usiamo le parentesi graffe — non serve nessun punto-
virgola dopo la parentesi chiusa.
{ comando ; comando ; comando ; . . . comando ; }
I comandi vengono eseguiti in ordine dal primo all’ultimo (ma attenzione ai comandi continue, break e return
che interrompono il flusso di esecuzione).

Le Diramazioni if e if . . . else
La forma più semplice del comando if dice al computer di eseguire un comando solo se un certo criterio è
soddisfatto:
if ( condizione ) corpo-sı̀
Il computer valuta condizione; se risulta vera, allora esegue corpo-sı̀, altrimenti non fa niente.
La forma più evoluta del comando sceglie fra due azioni diverse secondo un dato criterio:
if ( condizione ) corpo-sı̀ else corpo-no
Il computer valuta condizione; se risulta vera, allora esegue corpo-sı̀, altrimenti esegue corpo-no.

I Cicli
L’atto di eseguire una volta il corpo di un ciclo si dice anche “fare un’iterazione”.

Il Ciclo while
Il ciclo while è quello con la sintassi più semplice:
while ( condizione ) corpo
Praticamente il computer ripete iterazioni fino a quando condizione diventa falsa. Nota importante: la con-
dizione viene controllata prima di ogni iterazione, quindi è possibile che nessuna iterazione avvenga.

Il Ciclo do. . .while


La differenza critica fra un ciclo while e un ciclo do...while è che la condizione viene controllata dopo ogni
iterazione, e quindi almeno una iterazione verrà sempre fatta. Ecco la sintassi:
do corpo while ( condizione ) ;

Il Ciclo for
Il ciclo for è il più usato, si adatta bene al caso dove serve un “contatore di iterazioni” (p.es. per scorrere gli
elementi di un array). L’intestazione del ciclo comprende l’inizializzazione, la condizione, e l’aggiornamento:
for ( iniz ; condizione ; aggiorn ) corpo
Le tre componenti fra parentesi sono facoltative e possono essere omesse (ma i caratteri “;” sono obbligatori);
generalmente sono presenti tutte.
L’esecuzione del ciclo è come segue. Il computer esegue prima iniz. Poi controlla condizione. Se risulta falsa,
allora il comando for termina; altrimenti esegue corpo. Dopo avere completato il corpo, esegue aggiorn. Poi
torna a ricontrollare condizione per la prossima iterazione. Eccetera.

I Comandi break e continue


Questi comandi hanno senso solo dentro il corpo di un ciclo. La sintassi è semplicemente la parola stessa.
Può capitare di voler uscire subito dal ciclo (p.es. perché abbiamo trovato la risposta cercata); il comando
break dice al computer di passare immediatamente al primo comando successivo al ciclo.
Invece, il comando continue dice al computer di saltare il resto dell’iterazione attuale, e di passare diret-
tamente al controllo della condizione per la prossima iterazione; nel caso di un ciclo for viene effettuato anche
l’aggiornamento.

1
La Diramazione switch
Il comando if ci consente di scegliere fra due percorsi di istruzioni diversi, invece il comando switch ci consente
di indicare qualunque numero di percorsi alternativi. La scelta viene indicata da un valore intero. Il comando
switch è piuttosto complesso: la sintassi è la seguente.

switch ( espressione )
{
case costante1 : comandi break;
case costante2 : comandi break;
case costante3 : comandi break;
...
default: comandi
}

Il computer calcola il valore (di tipo intero) di espressione. Poi confronta questo valore con ciascuna delle
costanti. Se il valore risulta uguale a una delle costanti elencate, allora esegue i comandi successivi (fino al
break). Invece, se il valore di espressione è diverso da tutte le costanti elencate, allora esegue i comandi dopo
la voce default.
Il compilatore non esige nessun ordinamento particolare per le costanti, ma controlla che tutte le costanti
siano diverse. Ribadisco che le costanti devono assolutamente essere dei valori interi.

Procedure e funzioni
Definizione di una Procedura
Una procedura è un blocco di comandi che svolge un compito ben definito. A differenza di una funzione,
una procedura non dà al chiamante nessun risultato. Un esempio di procedura è fill della libreria standard
di C++ che “riempie” le caselle indicate con un valore fisso. La sintassi generale per definire una procedura è:

void nome-proc( parametri )


{
corpo
}

Definizione di una Funzione


Una funzione è un blocco di comandi che calcola un valore dati i valori di alcuni parametri. A differenza di
una procedura, una funzione deve sempre dare al chiamante un risultato. Un esempio di funzione è sqrt della
libreria standard di C++ che calcola la radice quadrata di un valore non-negativo. La sintassi generale per
definire una funzione è:

tipo-del-risultato nome-funz( parametri )


{
corpo
}

I Tipi dei Parametri


Il compilatore ha bisogno di sapere il tipo di ogni parametro (sia per funzioni, sia per procedure). Per ciascun
parametro indichiamo prima il tipo poi il suo nome: per esempio

double ipotenusa(double lato1, double lato2) {return sqrt(lato1*lato1+lato2*lato2);}

Il Comando return
Il comando return si usa nel corpo di una funzione o di una procedura; può anche comparire più volte. Il
comando return indica al computer di uscire immediatamente dalla procedura/funzione, e tornare a seguire
le istruzioni del chiamante, partendo da quella subito dopo la chiamata. In una funzione il comando return
indica anche il valore da dare al chiamante: la sintassi è: return espressione; dove espressione è il valore da
passare. Invece in una procedura, la sintassi è semplicemente return;.