Strutture di controllo iterative in C

while, for e do while

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *