I cicli sono utilizzati per eseguire ripetutamente una serie di istruzioni fino a quando una particolare condizione è soddisfatta. In Java ci sono tre tipi di cicli base: for
, while
e do-while
. In questa parte della guida impareremo ad utilizzare il ciclo for
in Java.
Sintassi del Ciclo For
for (inizializzazione; condizione; incremento/decremento) {
// Istruzioni
}
Nella parte di inizializzazione vengono inizializzate le variabili come il contatore del ciclo (solitamente vengono chiamate i
o j
). Questa parte viene eseguita solamente quando il loop viene avviato, ed è opzionale dato che le variabili possono essere inizializzate anche prima del loop.
La condizione è la parte principale del ciclo, qui vengono stabilite le regole che determinano fino a quando il ciclo deve continuare a ripetersi. Il ciclo si ripete fino a quando la condizion specificata non diventa falsa.
Infine abbiamo la parte di incremento o decremento, in cui specifichiamo l'incremento o il decremento della variabile contatore del ciclo. Questa modifica al valore del contatore serve, eventualmente, a far diventare la condizione del ciclo falsa per poi far terminare il ciclo.
All'interno del corpo del ciclo vanno inserite le istruzioni, ovvero il blocco di codice che verrà eseguito ad ogni iterazione del ciclo, fino a quando il ciclo non si ferma.
Diagramma di Flusso del Ciclo For
- All'inizio del ciclo viene eseguita, solamente una volta, la parte di inizializzazione.
- La condizione all'interno del ciclo è valutata ad ogni iterazione. Se la condizione è vera il codice all'interno del ciclo viene eseguito. Quando la condizione risulterà falsa, il codice all'interno non viene eseguito e il controllo viene trasferito al codice del programma dopo il ciclo.
- Dopo ogni esecuzione del codice interno al ciclo, viene eseguita la anche parte responsabile dell'incremento o decremento del contatore.
- Dopo questo passo si ritorna alla condizione che verrà nuovamente valutata per decidere se procedere oppure fermarsi.
Esempio di un Ciclo For in Java
public class EsempioCicloFor {
public static void main(String args[]) {
for (int i = 1; i <= 5; i++) {
System.out.println("Il valore di i è: " + i);
}
}
}
Ecco cosa succede quando proviamo ad eseguire il programma:
Il valore di i è 1
Il valore di i è 2
Il valore di i è 3
Il valore di i è 4
Il valore di i è 5
Nel programma seguente int = 1
è l'inizializzazione dell'espressione, i <= 10
è la condizione (espressione booleana) e i++
è l'operazione di incremento del contatore.
Cicli For Annidati in Java
Un ciclo for inserito all'interno di un altro ciclo for viene chiamato ciclo for annidato. Ecco di seguito un esempio utile a comprendere il concetto di ciclo for annidato. Nel seguente esempio andremo a stampare un pattern di caratteri utilizzando due cicli for:
public class CicloForAnnidato {
public static void main(String[] args) {
// ciclo for esterno
for(int i=1;i<=5;i++){
// ciclo for interno
for(int j=1;j<=i;j++){
System.out.print("* ");
}
// muove il cursore alla riga successiva
System.out.println();
}
}
}
*
* *
* * *
* * * *
* * * * *
Ciclo For Infinito in Java
Un ciclo che non smette mai di essere eseguito viene detto ciclo infinito. Questo accade quando viene impostata una condizione che non diventerà mai falsa. Con il seguente esempio impareremo a comprendere l'importanza dell'espressione booleana che viene definita all'interno del ciclo e come funziona l'operazione di incremento/decremento del valore:
for (int i = 1; i > 0; i++) {
System.out.println(i);
}
Il codice qui sopra rappresenta un ciclo for infinito dato che la condizione non potrà mai restituire false. Viene inizializzata una variabile i
impostata a 1 e la condizione controlla che i
sia maggiore di 0, cosa sempre vera dato che il ciclo si occupa di incrementare il valore di i
ad ogni iterazione. È importante notare lo stretto collegamento tra l'espressione booleana e l'operazione di incremento/decremento per determinare se il ciclo terminerà ad un certo punto oppure no.
Ecco un altro esempio di ciclo for infinito in Java:
for ( ; ; ) {
// Istruzioni...
}
Iterare un array con un ciclo for in Java
Un utilizzo molto comune per i cicli for in Java è quello di iterare un array e stampare tutti gli elementi contenuti al suo interno. Ecco di seguito un esempio di come possiamo utilizzare un ciclo for per questo:
public class EsempioCicloArray {
public static void main(String args[]) {
int array[] = {3, 8, 23, 64, 11, 304};
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}
Sintassi alternativa per i Cicli For in Java
In Java è possibile utilizzare anche un'altra sintassi per dichiarare i cicli for, più semplice da scrivere e leggere, molto utile quando si desidera iterare gli elementi contenuti in un Array, un ArrayList o altre classi che consentono di collezionare oggetti. Nel seguente esempio andiamo ad iterare sullo stesso array di prima utilizzando la sintassi alternativa:
public class EsempioCicloArray {
public static void main(String args[]) {
int array[] = {3, 8, 23, 64, 11, 304};
for (int numero : array) {
System.out.println(numero);
}
}
}
Nell'esempio la variabile numero è stata dichiarata di tipo intero, si tenga presente che il tipo della variabile dovrà essere modificato in base alla necessità.