I cicli while, do e for

Ciclo while

Forse il vero cuore di ogni programma è il fatto che possa eseguire la stessa operazione un certo numero di volte. I costrutti che eseguono quest’operazione sono chiamati cicli. Ne esistono diversi tipi ma tutti hanno un qualcosa in comune: come per il costrutto if , essi ripetono una operazione basandosi su una condizione.

In questo esempio abbiamo scritto un ciclo while . Per farlo, abbiamo appunto specificato la parola while  seguita da una condizione. Il codice contenuto fra parentesi { } viene ripetuto finché la condizione risulta vera. Alla prima iterazione sarà vera perché num  contiene il valore 0. Ad ogni iterazione successiva aggiungiamo 2 alla variabile num  e questo farà, dopo un certo numero di iterazioni diventare la condizione del while  come false , uscendo dal ciclo.

Ciclo do

Il ciclo do  è molto simile a quello while  appena visto. La sostanziale differenza sta nel fatto che la condizione sulla quale il ciclo si ripete, è posta alla fine. Questo si traduce nel fatto che la prima volta si entra sempre e comunque nel ciclo, come dire che la prima esecuzione è assicurata.

Ciclo for

Nei casi precedenti, abbiamo usato una variabile come contatore per sapere in anticipo quante volte il ciclo sarebbe stato eseguito. Questo automatismo è ulteriormente perfezionato dal ciclo for che offre una forma ancora più succinta:

Nella parentesi dopo la parola for contiene 3 piccole espressioni: la prima viene eseguita solo la prima volta ed inizializza il ciclo settando num a 0; la seconda è la condizione che fa ripetere il ciclo finché è true (come per gli altri cicli); la terza viene ripetuta anch’essa ad ogni iterazione e serve per incrementare il contatore num. Creiamo un ciclo che genera un fattoriale:

In questo esempio usiamo il ciclo for  per calcolare il fattoriale di un numero e sfruttiamo il contatore del ciclo, cioè la variabile num  come parte attiva dell’operazione. Consiglio: cercate di ripetere mentalmente ogni iterazione per vedere quali valori assume ciascuna delle variabili ad ogni iterazione del for .

Uscire dal ciclo

E se volessimo interrompere l’esecuzione del ciclo nonostante la condizione sia true ? Possiamo farlo usando l’istruzione break :

In questo ciclo, incrementiamo contatore utilizzando la forma breve di num = num +1  che corrisponde a num += 1  e eseguiamo il modulo di 3. Nel caso fosse 0, cioè contatore  contenga un multiplo di 3, usciamo dal ciclo. Se mettiamo in output la variabile contatore  ci accorgiamo che l’output è 3: abbiamo eseguito il ciclo solo 3 volte sulle 5 “previste” dalla condizione iniziale, proprio perché siamo usciti con break .