08: Ciclo For

Bentornati nella nostra rubrica. Oggi completeremo un argomento assai utile per i nuovi iniziati, poiché vi permetterà di compiere più azioni uguali senza riscrivere il codice n volte: stiamo parlando dei cicli.

L’ultimo comando di iterazione che affronteremo nella nostra guida e anche a nostro parere il più efficace per qualunque tipo di ripetizioni (badate che potete usare il comando di iterazione che più vi sembra comodo) è il for.

Il comando for gestisce automaticamente tutti i dettagli di un’iterazione controllata da un contatore (ovvero la variabile che inseriamo nella condizione e che ripeterà il ciclo finché non sarà vera). Perché possiate capire la differenza riscriverò il programma usato nell’ultimo articolo su while e do..while con il ciclo for:

#include<stdio.h>
int contatore, n;
int somma=0;
float media=0;
int main ()
{
printf("Questo programma calcola la media di 5 numeri inseriti da tastiera\n");

for(contatore=0;contatore<5;contatore++) //condizione del for

{
printf("Inserisci un numero\n"); // istruzioni
scanf("%d", &n);
somma=somma+n;
}

media=somma/contatore;
printf("La media è %f", media);
return 0;

}

for2


Il programma opererà come segue. Dichiariamo all’inizio le variabili che useremo nel corso del programma. Quando entreremo nella funzione main, nel momento in cui il comando for incomincerà ad essere eseguito , la variabile di controllo contatore sarà inizializzata a 0. In seguito sarà verificata la condizione di continuazione del ciclo: contatore<5. Dato che il valore iniziale di contatore sarà 0, la condizione sarà soddisfatta e quindi le istruzioni all’interno del corpo del for saranno eseguite. La variabile di controllo contatore a questo punto sarà incrementata dalla espressione contatore++ e il ciclo ripartirà nuovamente da capo, con la verifica della condizione di continuazioni. Dato che la variabile di controllo sarà ora 1, il valore finale non sarà stato ancora superato (contatore è ancora <5) e di conseguenza il programma eseguirà nuovamente tutte le istruzione racchiuse tra le parentesi graffe. Questo ciclo continuerà fino a quando la variabile di controllo sarà incrementata fino a contatore=5. L’incremento di contatore fino a 5 farà fallire la condizione di continuità del ciclo e ne provocherà la terminazione. Il programma continuerà eseguendo la prima istruzione dopo il comando for; in questo caso : media=somma/i;

Formalmente:

for(espressione1 ; espressione2 ; espressione3) { istruzioni }

//Attenzione: tra una espressione e l’altra c’è il punto e virgola!

dove:

espressione1 = valore iniziale della variabile di controllo.
espressione2 = condizione di continuazione del ciclo.
espressione3 = incremento della variabile di controllo.

Per avere un chiaro confronto con il comando while vi posto la forma generale anche di quel ciclo:

espressione1;

while(espressione2) {

istruzioni

espressione3;

}

Le tre espressioni del comando for sono opzionali. Qualora l’espressione2 sia omessa, C presumerà la condizione sempre vera creando così un ciclo infinito. (Per uscire da un ciclo infinito dal prompt dei comandi premete Ctrl + C)

for (contatore = 0 ;      ; contatore++) { istruzioni }

Si potrebbe anche omettere l’espressione1 se la variabile di controllo fosse stata già inizializzata altrove nel programma (solitamente prima del main).

int contatore=0;
for (   ; contatore < 5 ; contatore++)  { istruzioni }

L’espressione3 potrà essere omessa solamente se all’interno del corpo del comando for troviamo l’incremento della variabile di controllo. Il comando di incremento verrà preso come una qualunque istruzione all’interno del corpo del ciclo for.

for (contatore = 0 ; contatore < 5 ;       ) {
                istruzioni
                contatore++;    }

Per oggi è tutto. Alla prossima.

Please follow and like us: