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