1. Introduzione
Immagina di avere un compito: stampare a schermo dieci volte «Ciao!». Certo, potresti scrivere dieci righe con Console.WriteLine("Ciao!"); — ma ormai conosci il ciclo while, quindi te la cavi facile.
Ma c'è anche un altro ciclo — for, che ripete l'azione che vuoi quante volte vuoi. E sa contare da solo!
Ecco un esempio classico:
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Ciao!");
}
Cosa fa questo codice? Stampa a schermo la parola «Ciao!» esattamente 10 volte. Senza copiare-incollare e senza farti venire il tunnel carpale.
2. Sintassi del ciclo for
Il ciclo for ha tre parti principali, che si scrivono tra parentesi tonde dopo la parola chiave for:
for (inizializzazione; condizione; modifica)
{
// Corpo del ciclo
}
Vediamo ogni elemento nel dettaglio:
- Inizializzazione — di solito crei una variabile-contatore, da cui parte il conteggio delle ripetizioni (int i = 0).
- Condizione — viene controllata prima di ogni iterazione. Se è vera — si esegue il corpo del ciclo. Se è falsa — il ciclo finisce. Per esempio, i < 10.
- Modifica — l'operatore che scatta dopo ogni iterazione. Di solito aumenta o diminuisce il valore del contatore (i++).
Possiamo anche disegnare uno schema:
3. Confronto tra for e while
Forse ti sarà più chiaro se ti dico che for è solo un altro modo di scrivere il ciclo while.
Prima avevamo il ciclo while:
int i = 0; // Inizializzazione della variabile per il ciclo
while(i < 10) // Controllo della condizione per continuare il ciclo
{
Console.WriteLine(i); // Azione utile (corpo del ciclo)
i++; // Incremento del contatore
}
Possiamo riscriverlo come ciclo for, semplicemente spostando tutte le parti che gestiscono la logica del ciclo:
for (int i = 0; i < 10; i++) // Inizializzazione; Controllo condizione; Incremento contatore
{
Console.WriteLine(i); // Azione utile (corpo del ciclo)
}
I passi di entrambi i cicli:
- L'inizializzazione int i = 0; viene fatta una volta sola prima del ciclo.
- Poi viene controllata la condizione i <= 10
- Poi l'azione utile del ciclo Console.WriteLine(i);
- Poi l'incremento del contatore i++
- Poi si torna al passo 2.
4. Esempi d'uso del ciclo for
L'esempio più semplice
Stampiamo i numeri da 1 a 5:
for (int i = 1; i <= 5; i++)
{
Console.WriteLine(i);
}
Output:
1
2
3
4
5
Nota: se avessi scritto i < 5, l'ultimo valore stampato sarebbe stato 4.
Conto alla rovescia
Vuoi sentirti un astronauta? Facciamo un conto alla rovescia!
for (int i = 5; i > 0; i--)
{
Console.WriteLine(i);
}
Console.WriteLine("Si parte!");
Output:
5
4
3
2
1
Si parte!
Passo del ciclo diverso da 1
Puoi cambiare il contatore non solo di 1, ma di qualsiasi altro numero:
for (int i = 0; i <= 10; i += 2)
{
Console.WriteLine(i);
}
// Stampa: 0 2 4 6 8 10
5. Varianti del ciclo for
Più variabili nel ciclo
A volte è comodo tenere d'occhio due variabili insieme. Per esempio, stampiamo i numeri da destra a sinistra e da sinistra a destra:
for (int left = 1, right = 10; left <= 10; left++, right--)
{
Console.WriteLine($"{left} {right}");
}
Output:
1 10
2 9
3 8
...
10 1
Ciclo for infinito
Se la situazione è davvero pesante (tipo il tuo progetto è un moto perpetuo in IT), puoi fare un ciclo for "eterno":
for (;;) // niente inizializzazione, niente condizione, niente modifica
{
Console.WriteLine("Lavorare, lavorare e ancora lavorare!");
}
Attenzione: un ciclo così finisce solo se nel corpo c'è break, return o throw. Non usarlo senza motivo, altrimenti rischi di evocare il demone antico — "Il processo non risponde".
GO TO FULL VERSION