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.
istruzione;
while(espressione);
con più istruzioni, aggiungo le graffe
{
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.
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