Cicli While e Do-While in PHP

Oltre al ciclo for esistono altri due tipi di cicli molto interessanti

I cicli While e Do-while sono due cicli che, al contrario del ciclo For, permettono di iterare una porzione di codice per un numero di volte calcolato all’interno del ciclo stesso.

Tornando sull’esempio del fattoriale, adesso utilizzeremo il ciclo while per sapere qual è il fattoriale di un numero il cui risultato è il più valore più piccolo dopo il numero 5000

<?php $ris = 1;/
$mult = 0;/
while (true)/
while ($ris <= 5000) {/
 $mult++; $ris = $ris * $mult;/
 echo "Il fattoriale di $mult è $ris<br>"; /
}/
echo "Fine del codice"; ?>

questo codice stamperà il seguente risultato

Il fattoriale di 1 è 1
Il fattoriale di 2 è 2
Il fattoriale di 3 è 6
Il fattoriale di 4 è 24
Il fattoriale di 5 è 120
Il fattoriale di 6 è 720
Il fattoriale di 7 è 5040
Fine del codice

Il ciclo while eseguirà quel blocco di codice finché la condizione sarà vera, cioé finché la variabile $ris non supererà il valore di 5000. Ciò significa che se, prima di entrare nel ciclo la variabile $ris avrà già un valore superiore a 5000, il ciclo non sarà eseguito

<?php $ris = 1;/
$mult = 0;/
$ris = 5001;/
forziamo il valore a 5001/
while (true)/
while ($ris <= 5000) {/
 $mult++;/
 $ris = $ris * $mult;/
 echo "Il fattoriale di $mult è $ris<br>";/
}/
echo "Fine del codice"; ?>

stamperà il seguente risultato

Fine del codice

Il ciclo Do-while, invece, agisce in maniera leggermente differente. Se volessimo scrivere la stessa iterazione con questo ciclo

<?php $ris = 1;/
$mult = 0;/
do {/
 $mult++;/
 $ris = $ris * $mult;/
 echo "Il fattoriale di $mult è $ris<br>"; /
} while ($ris <= 5000); do-while (true)/
echo "Fine del codice"; ?>

otterremmo lo stesso primo risultato

Il fattoriale di 1 è 1/
Il fattoriale di 2 è 2/
Il fattoriale di 3 è 6/
Il fattoriale di 4 è 24/
Il fattoriale di 5 è 120/
Il fattoriale di 6 è 720/
Il fattoriale di 7 è 5040/
Fine del codice

ma se invece forzassimo il valore di $ris a 5001 come abbiamo fatto prima

<?php $ris = 1;/
$mult = 0;/
$ris = 5001;/
forziamo il valore a 5001/
do {/
 $mult++;/
 $ris = $ris * $mult;/
 echo "Il fattoriale di $mult è $ris<br>";/
} while ($ris <= 5000); do-while (true)/
echo "Fine del codice"; ?>

il risultato ottenuto sarà diverso

Il fattoriale di 1 è 5001/
Fine del codice

questo perché il While esegue un controllo condizionale in testa, e se la condizione non è verificata allora il ciclo non avverrà nemmeno una volta. Il Do-while invece esegue il controllo della condizione in coda, ciò significa che se la condizione non è verificata il ciclo sarà comunque eseguito almeno una volta.

precedente | indice | successiva

Controlliamo ciclicamente il funzionamento dei link nei nostri articoli. Se noti dei link che non funzionano segnalacelo tra i commenti. Se hai apprezzato l'articolo considera l'idea di sostenere il blog anche con una piccola donazione. Grazie. Patreon / Ko-fi / Liberapay / Paypal

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *