06 Cicli – while e for
Benvenuti in quest’altra guida, oggi vediamo i cicli che, insieme alle variabili e ai costrutti condizionali, formano i tre punti cardine del linguaggio Java, una sorta di “Santa Trinità” come ho già detto nella guida precedente.
Cos’è un ciclo?
Un ciclo è un comando, o sequenza di comandi, che si ripete finché una certa condizione è verificata.
Il while e il for sono i comandi che permettono di creare i cicli all’interno di Java. Funzionano allo stesso modo, cambia solo l’intestatura. Partiamo adesso dal primo.
WHILE
Data la somiglianza con l’if scrivo subito la sintassi di questo comando e ne faccio poi qualche esempio.
while(condizione)
{
comandi che voglio eseguire finché la condizione è verificata, cioè true
}
Similmente ad if anche nel while possiamo non scrivere le parentesi graffe se il ciclo vuole eseguire un solo comando.
while(condizione)
comando che voglio eseguire finché la condizione è verificata, cioè true
Funzionamento:
- verifico che la condizione sia vera
- condizione vera? Eseguo i comandi / Condizione falsa? Esco dal ciclo
- torno al primo punto
Adesso vediamo un esempio in cui facciamo la sommatoria dei primi 10 numeri.
int n=0, sommatoria=0; while(n<10) { sommatoria=sommatoria+n; n++; //uguale a scrivere n=n+1, stessa cosa vale per n-- }
Esiste una variante del while, chiamata do-while che ha la seguente sintassi:
do{
comandi che voglio eseguire finché la condizione è verificata, cioè true
}while(condizione);
Funzionamento:
- Eseguo i comandi
- condizione vera? Eseguo i comandi / condizione falsa? Esco dal ciclo
- Torno al primo punto
In questo caso quindi abbiamo la certezza che i comandi all’interno del do-while verranno eseguiti almeno una volta.
FOR
Vediamo subito la sintassi, di cui cambia solo l’intestazione:
for(dichiarazione e inizializzazione variabile; controllo valore variabile; modifica variabile)
{
comandi che voglio eseguire finché il “controllo valore variabile” mi restituisce true
}
Si capisce a prima vista che il for è come un while la cui condizione dipende da una sola variabile.
Vediamo lo stesso esempio di prima fatto con un for:
int sommatoria=0; for(int n=0; n<10; n++) sommatoria=sommatoria+n;
Il funzionamento è simile a quello del while:
- dichiaro e inizializzo la variabile n
- verifico che la condizione sia vera
- incremento il valore della variabile
- condizione vera? Eseguo i comandi / Condizione falsa? Esco dal ciclo
- torno al secondo punto
A onor del vero nel “controllo valore variabile” potrei inserire il controllo a più variabili come ad esempio (ipotizziamo che voglio che la sommatoria non sia maggiore di 10):
int sommatoria=0; for(int n=0; n<10 && sommatoria<10; n++) sommatoria=sommatoria+n;
In questo modo abbiamo una fusione tra while e for ma vi SCONSIGLIO vivamente di farlo, è bruttissimo da vedere e ha anche poco senso.
Regola generale:
- 1 condizione? Uso for
- più di 1 condizione? Uso while
BREAK
È un comando che possiamo utilizzare in qualsiasi punto all’interno di un while o for per interrompere istantaneamente il ciclo.
int n=0, sommatoria=0; while(n<10) { sommatoria=sommatoria+n; n++; break; }
Il ciclo verrà interrotto dopo aver eseguito due comandi sopra il break una sola volta, quindi sommatoria=0 ed esco dal ciclo.
Riducete al minimo l’uso di questo comando perchè in un programma complesso con più cicli uno dentro l’altro rischiate di fare pasticci non capendo più a quale ciclo si riferisce un certo break.
Come ho detto sopra è possibile, ovviamente, creare cicli dentro altri cicli all’infinito.
Dovreste aver capito l’importanza dei tre concetti fondamentali visti fino ad ora: cicli, costrutti condizionali e variabili.
Tuttavia, se non tutto vi è ancora chiaro, di sicuro lo diventerà settimana prossima quando faremo il nostro primo programma.
Quindi non perdetevi l’articolo di settimana prossima e non dimenticate di cliccare mi piace e condividere per aiutarci a crescere!
Commenti recenti