PHP - Ciclo do...While: Una Guida per Principianti

Benvenuti, aspiranti programmatori! Oggi ci immergeremo nel mondo emozionante dei cicli PHP, in particolare il ciclo do...while. Come il vostro amico insegnante di informatica del quartiere, sono qui per guidarvi attraverso questo concetto con molti esempi e spiegazioni. Allora, prendete i vostri taccuini virtuali e mettiamoci a ciclare!

PHP - Do…While Loop

Cos'è un Ciclo do...While?

Prima di immergerci negli esempi, capiremo cos'è un ciclo do...while. Immagina di giocare a un gioco in cui devi continuare a tirare un dado fino a ottenere un sei. Tirerai il dado almeno una volta, vero? Ecco esattamente come funziona un ciclo do...while!

Un ciclo do...while esegue un blocco di codice almeno una volta prima di controllare se una condizione è vera. Se la condizione è vera, continua a eseguire il blocco ripetutamente fino a quando la condizione diventa falsa.

Ora, vediamo la sintassi:

do {
// Codice da eseguire
} while (condizione);

Esempio 1: Ciclo do...While di Base

Iniziamo con un esempio semplice:

<?php
$i = 1;
do {
echo "Il numero è: $i <br>";
$i++;
} while ($i <= 5);
?>

Cosa succede qui?

  1. Inizializziamo una variabile $i con il valore 1.
  2. Il ciclo inizia con do, e stampiamo il valore corrente di $i.
  3. Incrementiamo $i di 1 usando $i++.
  4. Dopo la parentesi di chiusura, abbiamo la condizione while. Controlla se $i è minore o uguale a 5.
  5. Se la condizione è vera, il ciclo continua; se falsa, si ferma.

Output:

Il numero è: 1
Il numero è: 2
Il numero è: 3
Il numero è: 4
Il numero è: 5

Esempio 2: Ciclo do...While con Input dell'Utente

Facciamo diventare le cose più interattive! Creeremo un semplice gioco di indovinello:

<?php
$secretNumber = 7;
do {
$guess = (int)readline("Indovina il numero (tra 1 e 10): ");
if ($guess < $secretNumber) {
echo "Troppo basso! Prova di nuovo.\n";
} elseif ($guess > $secretNumber) {
echo "Troppo alto! Prova di nuovo.\n";
}
} while ($guess != $secretNumber);

echo "Congratulazioni! Hai indovinato!";
?>

In questo esempio:

  1. Impostiamo un numero segreto (7 in questo caso).
  2. Il ciclo chiede all'utente di indovinare il numero.
  3. fornisce feedback se la guess è troppo bassa o troppo alta.
  4. Il ciclo continua fino a quando il numero corretto non viene indovinato.

Questo dimostra come i cicli do...while possono essere utilizzati per la validazione degli input e per creare giochi semplici!

Esempio 3: Lettura di File con Ciclo do...While

Esploriamo un esempio più pratico - leggere righe da un file:

<?php
$file = fopen("sample.txt", "r");

do {
$line = fgets($file);
if ($line !== false) {
echo $line . "<br>";
}
} while ($line !== false);

fclose($file);
?>

Cosa succede qui:

  1. Apriamo un file chiamato "sample.txt" in modalità di lettura.
  2. Il ciclo legge una riga dal file usando fgets().
  3. Se la riga non è falsa (ovvero non è la fine del file), la stampiamo.
  4. Il ciclo continua fino a quando non raggiungiamo la fine del file.
  5. Infine, chiudiamo il file.

Questo esempio mostra come i cicli do...while possono essere utili per le operazioni sui file!

Decremento di un Ciclo "do...while"

Ora, contiamo all'indietro utilizzando un ciclo do...while:

<?php
$countdown = 5;

do {
echo "T-minus $countdown...<br>";
$countdown--;
} while ($countdown > 0);

echo "Decollo! ?";
?>

In questo conto alla rovescia cosmico:

  1. Iniziamo con $countdown impostato su 5.
  2. Il ciclo stampa il numero corrente del conto alla rovescia.
  3. Decrementiamo $countdown usando $countdown--.
  4. Il ciclo continua fino a quando $countdown è maggiore di 0.
  5. Una volta raggiunto zero, decolliamo!

Output:

T-minus 5...
T-minus 4...
T-minus 3...
T-minus 2...
T-minus 1...
Decollo! ?

Scansione di una Stringa in Ordine Inverso

Facciamo qualcosa di creativo e invertiamo una stringa utilizzando un ciclo do...while:

<?php
$str = "Ciao, Mondo!";
$length = strlen($str) - 1;

do {
echo $str[$length];
$length--;
} while ($length >= 0);
?>

Cosa succede qui?

  1. Iniziamo con una stringa "Ciao, Mondo!".
  2. Otteniamo l'indice finale della stringa (lunghezza - 1).
  3. Il ciclo stampa ogni carattere partendo dalla fine.
  4. Decrementiamo l'indice in ogni iterazione.
  5. Il ciclo continua fino a quando abbiamo stampato il primo carattere.

Output:

!odnuM ,iaoC

Cicli "do...while" Annidati

Infine, esploriamo i cicli do...while annidati con un divertente schema:

<?php
$i = 1;
do {
$j = 1;
do {
echo "* ";
$j++;
} while ($j <= $i);
echo "<br>";
$i++;
} while ($i <= 5);
?>

Spieghiamo questo:

  1. Il ciclo esterno controlla il numero di righe (5 in questo caso).
  2. Il ciclo interno stampa le stelle in ogni riga.
  3. Il numero di stelle in ogni riga corrisponde al numero della riga.
  4. Usiamo <br> per passare alla riga successiva dopo ogni riga.

Output:

*
* *
* * *
* * * *
* * * * *

Tabella dei Metodi

Ecco una tabella che riassume i metodi che abbiamo utilizzato nei nostri esempi:

Metodo Descrizione
echo Stampa una o più stringhe
readline Legge una riga dall'input dell'utente
fopen Apre un file o un URL
fgets Ottiene una riga dal puntatore del file
fclose Chiude un file aperto
strlen Restituisce la lunghezza di una stringa

Ecco fatto, ragazzi! Abbiamo analizzato i pro e i contro del ciclo do...while di PHP. Ricordate, la pratica fa la perfezione, quindi continuate a programmare e a sperimentare con questi cicli. Prima di sapere, sarete in grado di girare in cerchio intorno alle vostre sfide di programmazione! Buon coding! ??

Credits: Image by storyset