21 Ciclo DO … WHILE

Il ciclo do – while si differenzia dal while, in quanto il controllo è in coda con uscita per falso.

L’istruzione con il do viene eseguita almeno 1 volta.

do
istruzione;
while(espressione);

con più istruzioni, aggiungo le graffe

do
{
istruzione 1;
istruzione 2;
… altre …
}
while(espressione);

Vediamo la pratica cambiando il colore riga se il numero è pari o dispari:

<ol id="estrazione" name="estrazione" >
$nl="<br />";
$nVolte=0;
$colore1="yellow"; $colore2="pink";
do
{
echo "<li style='background-color: ";
if ($nVolte%2==0)
echo $colore1;
else
echo $colore2;
echo "'> ... </li>\n";
$nVolte++;
}
while (rand(1,10)%7!=0);
</ol>

Innanzitutto notare 2 variabili dichiarate sulla stessa riga.

$nVolte%2==0

Mi sta ad indicare se il numero è pari (il resto della divisione per 2)

Poi si è usata la funzione rand () che genera un numero casuale. Nell’esempio il numero casuale sarà compreso tra 1 e 10 e se il resto della divisione per 7 mi da 0 interrompo il ciclo soddisfacendo il while.

Stesso esempio di prima con l’aggiunta del comando continue.

$nl="<br />";
$nVolte=0;
$colore1="yellow"; $colore2="pink";
do
{
 if ($nVolte==3 || $nVolte==5)
 {
 $nVolte++;
 continue;
 }

echo "<li style='background-color: ";

if ($nVolte%2==0)
echo $colore1;
else
echo $colore2;

echo "'> $nVolte </li>\n";
$nVolte++;
}
while (rand(1,100)%31!=0);

In questo esempio facciamo stampare il background color dell’elemento <li> solo se $nVolte è diverso dai numeri 3 e 5 (l’operatore pipe || vuol dire or). Da notare che il comando continue fa saltare direttamente al while