Nella programmazione informatica è molto importante comprendere i principali costrutti di controllo che permettono di modificare o controllare il flusso sequenziale delle istruzioni in base a precise condizioni impostate dal programmatore. I costrutti di controllo sono definiti indipendentemente dal linguaggio di programmazione ad alto livello utilizzato e a ognuno di essi corrispondono generalmente una o più istruzioni definite dalla sintassi del linguaggio stesso.
I principali costrutti di controllo si distinguono in iterativi e di selezione. I costrutti iterativi permettono di scrivere una volta sola un’istruzione (o un blocco di istruzioni), che viene ripetuta per più volte, costituendo quindi un ciclo di istruzioni. Il numero di volte che un ciclo viene ripetuto dipende dalle condizioni specificate nel costrutto. I principali costrutti di controllo iterativi sono il ciclo do-while e il ciclo for.
while (condizione)
(istruzione)
Ove il blocco istruzione viene ripetuto fino a che la condizione è soddisfatta. Ovvero, la condizione viene verificata all’inizio di ogni ciclo: se la condizione è verificata, il blocco istruzione viene eseguito, altrimenti il controllo dell’esecuzione del programma esce dal ciclo e si passa all’istruzione successiva a quella iterativa. Una variante è il do:
do (istruzione)
while (condizione)
A differenza del precedente, il blocco istruzione viene eseguito almeno una volta, prima della prima verifica della condizione. Il ciclo for è un costrutto più flessibile che permette di specificare una condizione iniziale, come essa si modifica da un ciclo all’altro, e la condizione finale che provoca l’uscita dall’iterazione. Il ciclo for è quindi definito come:
for (inizializzazione);(condizione);(incremento)
(istruzione)
ove l’inizializzazione viene eseguita una sola volta all’inizio del primo ciclo, e istruzione viene eseguita fino a che la condizione non si verifica, e da un ciclo a quello successivo si effettua l’incremento. Per esempio, volendo sommare, elemento per elemento, due vettori a e b, ponendo il risultato in un vettore c, si può scrivere:
for (i=0; i<10; i=i+1)
c[i]=a[i]+b[i]
In questo semplice esempio, l’inizializzazione consiste nel porre l’indice a zero indicando che si vuole partire dal primo elemento dei vettori, la condizione esprime il concetto che si è arrivati alla fine degli elementi che si vuole sommare, e l’incremento esprime il concetto che da un ciclo all’altro ci si sposta di un elemento al successivo. L’istruzione è costituita dalla vera e propria operazione di somma e inizializzazione del terzo vettore che conterrà il risultato.
Infine, importante costrutto di programmazione non iterativo, ma di selezione, è if-then-else:
if (condizione) then
(istruzione1) else
(istruzione2)
In questo caso non c’è alcuna iterazione, ma il costrutto permette di eseguire un blocco di istruzioni o un altro a seconda che la condizione sia verificata oppure no. Nel primo caso si esegue il blocco istruzione1, altrimenti il blocco istruzione2. La parte else istruzione2 è opzionale e può mancare; in questo caso, se la condizione non è verificata, non si esegue nulla e si passa all’istruzione successiva al costrutto if-then.
Usando le istruzioni di controllo elementari fin qui viste, è possibile scrivere in un linguaggio ad alto livello un programma in grado di realizzare qualunque algoritmo.
Manuale di cultura generale – Informatica – Costrutti di controllo – Continua