Cicli for e while
Per ripetere più di una volta determinate operazioni
For
Sai esattamente cosa fare
Esempio:
public class Esempio {
public static void main (String args[]) {
int i;
for(i=0;i<4;i++){
System.out.println("Stampa a video.");
}
for(i=5;i>0;i--){
System.out.println("Valore di i: " + i);
}
}
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OUTPUT 1° for:
Stampa a video. Stampa a video. Stampa a video. Stampa a video.
OUTPUT 2° for:
Valore di i: 5 Valore di i: 4 Valore di i: 3 Valore di i: 2 Valore di i: 1
Spiegazione:
Il ciclo for viene utilizzato 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){ }
Assegnazione variabile: assegno un valore numerico a una variabile.
Limite massimo: fino a quando questa condizione è vera, si continua a eseguire il ciclo.
Incremento (o decremento): la variabile viene incrementata (o decrementata) a ogni iterazione.
Per consuetudine questo ciclo presenta spesso la variabile "i", ma nessuno ci vieta di utilizzare altre variabili. Comunque è consigliato l'uso della "i".
Per via della sua natura, il for è il tipo di iterazione da preferire quando si lavora per esempio con i vettori.
Due for sono detti annidati quando il primo racchiude il secondo:
for( ) {
for( ) {
}
}
While & Do-while
Sento profumo di loop...
Esempio:
import java.util.*;
public class Esempio {
public static void main (String args[]) {
Scanner in = new Scanner(System.in);
int flag = 0;
while(flag!=1){
System.out.println("Motore spento.");
System.out.print("Inserire 1 per accendere il motore: ");
flag = in.nextInt();
}
System.out.println("Motore acceso.");
}
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Ciò che fa il programma è richiere all'utente di inserire 1 per accendere il motore, e finché non lo inserisce il programma non termina.
Spiegazione:
I cicli while sono differenti, non si usano le variabili con la formula dell'incremento, ma si eseguono cicli che terminano solo quando non è più soddisfatta una condizione. La sua sintassi è:
while ( condizione ) { }
Una sua caratteristica è che se una condizione non appare vera già da subito, allora il ciclo viene completamente ignorato. Se si vuole che ciò non accada, in nostro soccorso abbiamo il do-while: analogo al while, con l'unica differenza che esegue le istruzioni all'interno del do almeno una volta. Ecco la sua sintassi:
do { }
while condizione;
Quando si usano questi cicli, è facile imbattersi in loop, cioè l'esecuzione infinita delle istruzioni all'interno del ciclo. Questo perché la condizione è sempre vera, quindi occorre modificare il valore della variabile coinvolta all'interno del ciclo.
Differenza tra while e do-while
Non sono proprio la stessa cosa
While
int x = 10;
while(x<10) {
System.out.println("Ciclo while in esecuzione.");
x--;
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Il ciclo viene completamente ignorato. La condizione x<10 non è rispettata.
Do-while
int x = 10;
do {
System.out.println("Ciclo do-while in esecuzione.");
x--;
}
while(x<10);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Il ciclo viene ripetuto infinite volte, siamo in presenza di un loop. La condizione x<10 è sempre rispettata.