1. Confronto tra loop: for
vswhile
Un while
ciclo può essere utilizzato ovunque sia necessario eseguire più volte un'istruzione o un gruppo di istruzioni. Ma tra tutti gli scenari possibili, vale la pena evidenziarne uno.
Stiamo parlando della situazione in cui il programmatore (il creatore del programma) sa in anticipo quante volte deve essere eseguito il ciclo. Questo di solito viene gestito dichiarando una variabile contatore speciale e quindi aumentando (o diminuendo) la variabile a 1
ogni iterazione del ciclo.
Tutto sembra funzionare come dovrebbe, ma non è molto conveniente. Prima del ciclo, impostiamo il valore iniziale della variabile contatore. Quindi nella condizione controlliamo se ha già raggiunto il valore finale. Ma di solito cambiamo il valore alla fine del corpo del ciclo.
E se il corpo del loop è grande? O se abbiamo diversi cicli nidificati? In generale, in questi casi è desiderabile raccogliere tutte queste informazioni sulle variabili contatore in un unico posto. Ed è per questo che abbiamo il for
ciclo in Java. Inoltre non sembra molto complicato:
for (statement 1; condition; statement 2)
{
block of statements
}
Un while
ciclo ha solo una condizione tra parentesi, ma un for
ciclo aggiunge due istruzioni, separate da punto e virgola.
La realtà è più semplice di quanto sembri: il compilatore converte un for
ciclo in un normale while
ciclo come questo:
statement 1;
while (condition)
{
block of statements
statement 2;
}
O meglio, dimostriamolo con un esempio. I due frammenti di codice seguenti sono identici.
opzione 1 | opzione 2 |
---|---|
|
|
Abbiamo appena raccolto in un unico posto tutto il codice che riguarda la i
variabile contatore.
In un for
ciclo, l'istruzione 1 viene eseguita solo una volta, prima che inizi il ciclo stesso. Questo può essere visto chiaramente nel secondo frammento di codice
l'istruzione 2 viene eseguita lo stesso numero di volte del corpo del ciclo e ogni volta che viene eseguita dopo che l'intero corpo del ciclo è stato eseguito
2. Dove for
viene utilizzato il ciclo
Il for
ciclo è probabilmente il tipo di ciclo più utilizzato in Java. È usato ovunque, per i programmatori è solo più chiaro e conveniente di un while
loop. Praticamente qualsiasi while
loop può essere convertito in un for
loop.
Esempi:
ciclo while | per ciclo |
---|---|
|
|
|
|
|
|
|
|
|
|
Presta attenzione all'ultimo esempio. Mancano le istruzioni per lavorare con il contatore di cicli. Non c'è nessun contatore e nessuna dichiarazione.
In un for
ciclo, Java ti consente di omettere "l'istruzione per inizializzare il contatore" e "l'istruzione per aggiornare il contatore". Anche l'espressione che definisce la condizione del ciclo può essere omessa.
3. Sfumature dell'uso del for
ciclo
Un punto importante sull'uso for
di loop break
e continue
istruzioni.
Un'istruzione break
in un for
ciclo funziona come in un while
ciclo: termina immediatamente il ciclo. Un'istruzione continue
salta il corpo del ciclo, ma non statement 2
(il che cambia il contatore del ciclo).
Diamo un'altra occhiata a come for
e while
i loop sono correlati.
for (statement 1; condition; statement 2)
{
block of statements
}
statement 1;
while (condition)
{
block of statements
statement 2;
}
Se un'istruzione continue
viene eseguita in un for
ciclo , il resto del blocco di istruzioni viene saltato, ma l'istruzione 2 (quella che funziona con la for
variabile contatore del ciclo) viene comunque eseguita.
Torniamo al nostro esempio saltando i numeri divisibili per 7.
Questo codice andrà in loop per sempre | Questo codice funzionerà correttamente |
---|---|
|
|
Il codice che usa il while
ciclo non funzionerà — i non sarà mai maggiore di 7. Ma il codice con il for
ciclo funzionerà bene.
4. Confronto per loop: Java vs Pascal
A proposito, anche Pascal ha un For
loop. In generale, praticamente ogni linguaggio di programmazione ne ha uno. Ma in Pascal è super chiaro. Esempi:
Pasquale | Giava |
---|---|
|
|
|
|
|
|
GO TO FULL VERSION