Strutture di controllo iterative in C

Parliamo adesso delle strutture di controllo iterative, ovvero i cicli.

Quando si desidera ripetere un’operazione un determintato numero di volte si ricorre alle strutture di controllo iterative.

Tipi di strutture di controllo iterative.

Ci sono tre tipi di strutture iterative:

  • while
  • do…while
  • for

Inoltre, anche i costrutti iterativi, come quelli di selezione, possono essere annidati.

while

Il while è un costrutto pre-condizionale ovvero il controllo della condizione è precedente all’esecuzione delle istruzioni.

La sintassi è la seguente:

while (<Condizione>)
<Istruzione/i>;

dove istruzione/i rappresenta un’istruzione singola oppure un blocco di istruzioni, in quest’ultimo caso sono necessarie le parentesi graffe.

La semantica è la seguente:

  • si valuta la Condizione;
  • se la condizione è vera, viene eseguita l’Istruzione/i e si ritorna al punto 1;
  • se la condizione è falsa l’Istruzione/i non viene eseguita e il controllo passa all’istruzione successiva al while.

Esempio:

Programma che inserisce dieci numeri.

int i=0; //inizializzo il contatore a zero

while(i<10)

{

printf(“inserisci un numero: “);

scanf(“%d”, &numero);

i=i+1; //incremento il contatore di uno

}

Il ciclo si fermerà quando i sarà uguale a 9.

do while

Il do … while  diversamente dal while, è post condizionale, ovvero valuta la condizione alla fine del ciclo.

Quindi i corpo del ciclo do … while viene eseguito almeno una volta.

La sintassi è la seguente:

do

<Istruzione/i>;

while (<Condizione>);

dove Istruzione/i rappresenta un’istruzione singola oppure un blocco di istruzioni, in quest’ultimo caso sono necessarie le parentesi graffe.

La semantica è la seguente:

  • Si esegue l’Istruzione/i;
  • Si valuta la Condizione;
  • Se la Condizione è vera si ritorna al punto 1;
  • Se la Condizione è falsa, il controllo passa all’istruzione successiva al do … while.

Esempio:

Programma che inserisce dei numeri minori di 10

do

{

printf(“inserisci un numero: “);

scanf(“%d”, &numero);

while (numero<10);

for

Una struttura più potente delle precedenti è il for.

La sintassi è la seguente:

for ([<Espressione1>]; [<Espressione2>];[<Espressione3>])

<Istruzione/i>;

dove:

  • Espressione1 è il punto di partenza dell’iterazione, può anche essere un’espressione che inizializza le variabili del ciclo o una dichiarazione di variabili.
  • Espressione2 è la condizione che permetterà al ciclo di continuare.
  • Espressione3 è di solito un’istruzione di incremento o decremento del contatore.

Istruzione/i indica un’istruzione singola o un blocco di istruzioni racchiuse tra parentesi graffe ed è il corpo dell’iterazione.

Esempio:

for(i=0;i<10;i++)

{

printf(“inserisci un numero: “);

scanf(“%d”, &numero);

}

Link utili:

Fibonacci

Numero primo

Somma di 10 numeri

Media dei numeri in un array

Selection sort

Insertion sort

Quick sort

Merge sort

Leave a Reply