Articolo originale: For Loops in C – Explained with Code Examples
Se hai bisogno di ripetere un blocco di codice più volte, puoi utilizzare dei loop.
Queste ripetizioni dello stesso blocco di codice, per un certo numero di volte, sono dette iterazioni e il numero delle iterazioni viene determinato dalla condizione del loop.
I loop for e while sono ampiamente utilizzati in quasi tutti i linguaggi di programmazione.
In questo tutorial, parleremo dei loop for in C. In particolare, imparerai:
- la sintassi per usare i loop
for - come funzionano i loop
forin C - l'eventualità di creare loop
forinfiniti
Iniziamo!
Sintassi e funzionamento dei loop for in C
In questa sezione, imparerai la sintassi di base dei loop for in C.
La sintassi generale per usare un loop for è mostrata di seguito:
for(initialize; check_condition; update)
{
//esegui questo
}Nel blocco qui sopra:
initializeè l'istruzione di inizializzazione – qui viene inizializzata la variabile di controllo del loop.check_conditionè la condizione che determina se il loop deve continuare.
Finché check_condition risulta vera, il corpo del loop viene eseguito.- L'istruzione
updateaggiorna la variabile di controllo del loop dopo l'esecuzione delle istruzioni nel corpo del loop.
Struttura di controllo dei loop for in C
La struttura di controllo è la seguente:
- Inizializzazione del conteggio – l'istruzione
initializeviene eseguita. Questo accade solo una volta, all'inizio del loop. - Verifica della condizione del loop – viene valutata l'espressione
check_condition. Se la condizione è true, si passa allo step 3. Se è false, si esce dal loop. - Esecuzione delle istruzioni nel corpo del loop.
- Aggiornamento del conteggio – viene eseguita l'istruzione
update. - Si torna allo step 2.
Tutto ciò è illustrato qui sotto:

Ora che hai un'idea di come funziona un loop for, prendiamo un esempio semplice per vedere un loop for in azione.
Esempio di loop for in C
Scriviamo un semplice loop for per contare fino a 10 e stampare il valore del conto durante ogni passaggio attraverso il loop.
#include <stdio.h>
int main()
{
for(int count = 0; count <= 10; count++)
{
printf("%d\n",count);
}
return 0;
}Nel blocco di codice qui sopra:
countè la variabile contatore ed è inizializzata a0.- La condizione del loop è
count <= 10. Dunque,countpuò essere al massimo 10 affinché il loop continui. - Nel corpo del loop, viene stampato il valore di
count. - E il valore di
countviene aumentato di 1. - Il controllo poi raggiunge la condizione
count <= 10e le iterazioni proseguono finché la condizione risulta verificata. - In quest'esempio, la condizione del loop
count < = 10diventa false quando il valore dicountè 11 – e il loop termina.
Ed ecco l'output:
//Output
0
1
2
3
4
5
6
7
8
9
10Dovresti sempre fare attenzione che il tuo loop termini effettivamente ad un certo punto.
Sai che il loop continua finché la condizionecheck_conditionè true, mentre si ferma quandocheck_conditiondiventa false. Ma cosa accade se la condizione del loop è sempre true?
Bene, questo è ciò che accade se ti imbatti in un loop infinito. Il loop prosegue per sempre, finché il programma non va in crash o il tuo sistema si spegne.😢
Imparerai di più sui loop infiniti nella prossima sezione.
Loop for infiniti
Se il tuo loop non si ferma e continua ad oltranza, allora, hai un loop infinito. Facciamo qualche esempio per capire meglio.
▶ Nella costruzione del loop for, se non specifichi la condizione del loop (check_condition), viene assunta come true di default.
Come risultato, la condizione non diventa mai falsa e il loop continua a iterare indefinitamente fino a che non interrompi forzatamente il programma.
Ecco un loop infinito nello snippet di codice qui sotto:
#include <stdio.h>
int main()
{
for(int i = 0; ; i++) //la condizione di test non è indicata
{
printf("%d ",i);
}
return 0;
}
▶ Vediamo un altro esempio.
Inizializzi la variabile contatore i a 10. Aumenti i di 1 dopo ogni iterazione.
Nota che la condizione di test è i > 0, ma il valore di i sarà sempre maggiore di 0.
Quindi, otterrai un loop infinito:
#include <stdio.h>
int main()
{
for(int i = 10; i > 0 ; i++) //la condizione di test è sempre TRUE
{
printf("%d ",i);
}
return 0;
}
▶ In quest'esempio, la variabile contatore i è inizializzata a 0, ma decresce di 1 a ogni iterazione.
Di conseguenza, i sarà sempre minore di 10, la condizione i < 10 risulterà sempre true e il loop sarà infinito.
#include <stdio.h>
int main()
{
for(int i = 0; i < 10 ; i--) //la condizione di test è sempre TRUE
{
printf("%d",i);
}
return 0;
}Per evitare di eseguire loop infiniti, dovresti definire correttamente la condizione del loop.
Se sei un principiante, porti queste domande potrebbe aiutarti:
Cosa voglio che faccia questo loop?
Quante volte voglio che il loop venga eseguito?
Quando dovrebbe fermarsi?
Poi, puoi proseguire e costruire il tuo loop di conseguenza. 🙂
Conclusione
Spero che questo tutorial ti sia stato d'aiuto.
Per ricapitolare, abbiamo imparato la sintassi e il funzionamento dei loop for. Abbiamo anche anticipato la possibilità di definire dei loop for infiniti e parlato di come evitarli, definendo la condizione di loop con attenzione.
Ci vediamo presto per un altro tutorial. Fino ad allora, buona programmazione!