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:

  1. verifico che la condizione sia vera
  2. condizione vera? Eseguo i comandi / Condizione falsa? Esco dal ciclo
  3. 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:

  1. Eseguo i comandi
  2. condizione vera? Eseguo i comandi / condizione falsa? Esco dal ciclo
  3. 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:

  1. dichiaro e inizializzo la variabile n
  2. verifico che la condizione sia vera
  3. incremento il valore della variabile
  4. condizione vera? Eseguo i comandi / Condizione falsa? Esco dal ciclo
  5. torno al secondo punto

A onor del vero nel “controllo valore variabilepotrei 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!

Please follow and like us: