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 .