In Java esistono due tipi di cicli (operazioni ripetute più di una volta): il ciclo for e il ciclo while. In questa lezione vedremo come gestire le iterazioni con Java utilizzando, appunto, i due costrutti citati.
Il ciclo for
Il ciclo for viene utilizzato in Java quando si vuole eseguire delle operazioni un numero determinato (già conosciuto) di volte. La sintassi del ciclo for è la seguente:
for (assegnazione variabile; limite massimo; incremento)
Quindi andiamo a determinare un valore iniziale della variabile nell’assegnazione, un valore massimo determinato spesso da una condizione e un incremento o decremento in base alle necessità.
class ProvaFor1 {
public static void main(String args[]) {
for (int i=0; i<10; i++) {
System.out.println(i);
}
}
}
Come risultato avremo dieci righe composte da numeri da 0 a 9.
Nell’assegnazione variabile (primo parametro del ciclo for) dichiariamo come intero "i" e gli assegniamo il valore di 0. Il limite massimo è impostato a i<10 in maniera da eseguire la stessa operazione fintanto che "i" è minore di 10. Quando il valore di "i" (che è incrementato ad ogni passaggio con i++) raggiungerà 9 il ciclo si interromperà.
Visualizziamo qualche altro esempio:
class ProvaFor2 {
public static void main(String args[]) {
for (int i=0, j=2; i<10; i++, j++) {
System.out.println("i=" + i + " e j=" + j);
}
}
}
In questo caso utilizziamo due variabili locali ("i" e "j") che si autoincrementano ma hanno valori differenti: infatti il valore iniziale di "j" è impostato a 2, quindi incomincierà da 2 e terminerà a 11.
E’ possibile anche inserire un for all’interno di un altro for attenendo così due for annidati. Un esempio è mostrato nel blocco di codice sottostante:
class ProvaFor2{
public static void main(String args[]) {
for (int i=1; i<11; i++) {
for (int j=1; j<11; j++) {
System.out.print(i*j + " ");
}
System.out.println();
}
}
}
Provate a compilare ed eseguire questo semplice programmino… esatto ciò che appare sullo schermo non è altro che la tavola pitagorica. Abbiamo cioè inserito un ciclo dentro un altro ciclo, e quindi per ogni numero "j" da 1 a 10 ne abbiamo moltiplicato per il numero "i" e restituito il risultato. Infine, quando termina il primo ciclo di "j" scriviamo un ritorno a capo e ricominciamo con il prossimo numero "i".
Il ciclo While
In Java i cicli while sono differenti, non si usano le variabili con la formula dell’incremento, ma si eseguono cicli che terminano solo quando una condizione appare vera. Vediamo subito un piccolo esempio chiarificatore:
class ProvaWhile1 {
public static void main(String args[]) {
int i = 0;
while (i<10) {
System.out.println(i);
++i;
/*
i++ imposta prima il valore di i e poi lo incrementa
++i prima incrementa e poi imposta il valore
*/
}
}
}
Questo esempio stampa il valore di "i" fino a quando "i" non diventa 10, in questo caso abbiamo dovuto dichiarare e assegnare prima il valore di "i" e, dentro il blocco while, abbiamo incrementato il suo valore. Prima di eseguire le istruzioni contenute nel blocco il compilatore controlla che la condizione sia vera. E’ tuttavia possibile anche eseguire almeno una volta le istruzioni dentro il blocco while utilizzando la sintasi con do (cd. ciclo do While):
class ProvaWhile2 {
public static void main(String args[]) {
int i = 0;
do {
System.out.println(i);
++i;
}
while (x<10);
}
}