Le strutture iterative nel linguaggio C

Nella programmazione una struttura iterativa esegue un blocco di codice più volte (iterazioni) tramite un ciclo condizionato o incondizionato.

La differenza tra cicli condizionati e incondizionati. Un ciclo è condizionato se dipende dal verificarsi o meno dall'evento. Quindi, il numero delle iterazioni non si conosce a priori ( es. finché la variabile esci è uguale a N ). Un ciclo è incondizionato se il numero delle iterazioni è predefiito e conosciuto fin dall'inizio (es. 30 iterazioni).

Le principali strutture iterative nel linguaggio C sono le seguenti:

while

L'istruzione while è una struttura iterativa condizionata con controllo all'inizio.

while (condizione) {
// codice
}

Se la condizione è soddisfatta (vera), il blocco di codice viene eseguito.

Al termine dell'esecuzione, il programma torna all'inizio della struttura e ricomincia un nuovo ciclo se la condizione è ancora vera.

Nota. Si tratta di una struttura pre-condizionale perché il controllo avviene prima del blocco di codice. Quindi, se la condizione non è soddisfatta il blocco di codice non viene eseguito nemmeno una volta.

Le parentesi graffe della while posso ometterle se il blocco è composto da una singola istruzione.

Esempio

Questo programma stampa i numeri da 0 a 10.

#include <stdio.h>
int main()
{
int i=0;
while(i<10)
{
printf(" %d ",i);
i=i+1;
}

printf("End");
}

La struttura compie dieci iterazioni.

In ogni iterazione stampa la variabile del contatore (i) e la incrementa di 1.

0 1 2 3 4 5 6 7 8 9 End

Quando la variabile i è uguale a 10, la condizione del ciclo (i<10) non è più soddisfatta (falsa).

Quindi il programma esce dalla struttura ciclica e stampa a video la stringa "End".

do While

L'istruzione do while è una struttura iterativa condizionata con controllo alla fine.

do {
// codice
}
while (condizione);

In questo caso la condizione è posta alla fine del blocco di codice.

Se la condizione è soddisfatta (vera), il programma torna all'inizio del blocco di codice e lo esegue di nuovo.

Quindi, nella struttra do while il codice viene eseguito sempre almeno una volta.

Esempio

Questo programma stampa i numeri da 1 a 10.

#include <stdio.h>
int main()
{
int i=0;
do
{
printf(" %d ",i);
i=i+1;
}
while(i<10);

printf("End");
}

Il funzionamento è simile al precedente esempio ma il controllo è posto alla fine del ciclo.

Quindi, il blocco di codice viene eseguito almeno una volta anche se la condizione è falsa.

0 1 2 3 4 5 6 7 8 9 End

for

L'istruzione for è una struttura iterativa non condizionata.

for (partenza; condizione; incremento]) {
// codice
}

  • Il primo parametro è il punto di partenza del ciclo. E' usato per inizializzare le variabili del ciclo.
  • Il secondo parametro è la condizione che reitera il ciclo.
  • Il terzo parametro è l'incremento o il decremento della variabile che conta le iterazioni del ciclo.

Il blocco di codice tra parentesi graffe è una sequenza di istruzioni.

Se il blocco è composto da una sola istruzione, le parentesi graffe posso ometterle.

Esempio

Questo codice stampa i numeri da 1 a 10 con la struttura for

#include <stdio.h>
int main()
{
int i=0;
for(i=0; i<10; i++)
{
printf(" %d ",i);
}
printf("End");
}

La struttura for compie 10 iterazioni.

In ogni iterazione stampa la variabile contatore (i).

0 1 2 3 4 5 6 7 8 9 End

Nel caso della struttura for il numero delle iterazione è sempre conosciuto fin dall'inizio.

Viceversa, nelle strutture while e do while il numero delle iterazioni potrebbe anche non essere conosciuto a priori.

Nota. Pur essendo cicli condizionati le strutture while e do while possono anche essere usate per realizzare un ciclo incondizionato. Pertanto, all'occorrenza while e do while realizzano le stesse funzionalità della struttura for. Per questa ragione, il mio consiglio è di abituarsi a usare prevalentemente le strutture while e do while.

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Libri di approfondimento

Il linguaggio C

  1. Un esempio pratico
  2. Come compilare il programma

Impariamo a programmare

  1. Come dichiarare le variabili
  2. Gli operatori
  3. La libreria stdio.h
  4. Come visualizzare in output testo e variabili
  5. Come usare le stringhe
  6. L'istruzione IF
  7. Le strutture cicliche
  8. Le funzioni
  9. Gli array