Luigi Arlotta
a- a+

Ciclo While

Un ciclo while è leggermente meno sofisticato di un ciclo for, ma svolge approssimativamente la stessa funzione. E' composto da un blocco di istruzioni e da una condizione di uscita. All'ingresso del ciclo e ogni volta che viene eseguito tutto il blocco di istruzioni si effettua il controllo sulla condizione di uscita. Il ciclo termina quando la condizione d'uscita restituisce il valore false.
La sintassi di un ciclo while è la seguente:

 

while (condizione)
{

bloccoDiIstrizioni;

}

 

dove condizione è la condizione di uscita del ciclo. Il ciclo termina quando condizione restituisce il valore false (cioè quando la condizione risulta falsa). Il primo controllo sulla condizione viene effettuato all'ingresso nel ciclo, prima della prima iterazione, è quindi possibile che le istruzioni appartenenti a bloccoDiIstruzioni non vengano mai eseguite nel caso condizione risulti immediatamente false. Anche nel caso di cicli while, come per i cicli for, sussiste il pericolo di mandare il processo in loop. Questo avviene quando, al ripetersi delle iterazioni, non si verifica mai la condizione d'uscita.

La stessa applicazione vista nel capitolo precedente, che costruisce una tabella è stata realizzata sostituendo il ciclo for con un ciclo while.
Di seguito è riportato il codice. In fig.8.1 è riportato l'output del programma che risulta perfettamente uguale a quello del capitolo precedente.

<!--file: helloworld.html -->
<HTML>

<HEAD>

<TITLE>Example 7.01</TITLE>

</HEAD>
<BODY>

<?
$j=1;
echo ("<TABLE ALIGN=CENTER BORDER=1 CELLSPACING=5>");
while ($j<=5) {

echo ("<TR>");
$k=1;
while ($k<=3) {

echo ("<TD> Line $j, Cell $k </TD>");
$k++;

}
echo("</TR>");
$j++;

}
echo ("</TABLE>");
?>

</BODY>

</HTML>

l'output sarà ancora:

Line 1, Cell 1 Line 1, Cell 2 Line 1, Cell 3
Line 2, Cell 1 Line 2, Cell 2 Line 2, Cell 3
Line 3, Cell 1 Line 3, Cell 2 Line 3, Cell 3
Line 4, Cell 1 Line 4, Cell 2 Line 4, Cell 3
Line 5, Cell 1 Line 5, Cell 2 Line 5, Cell 3

PHP propone una sintassi alternativa anche per l'istruzione while. E' possibile evitare l'uso delle parentesi graffe e delimitare il blocco di istruzioni che costituisce il corpo del ciclo con il comando endwhile. Di seguito è riportata la sintassi di un'espressione while che fa uso della parola chiave endwhile.

 

while (condizione)
bloccoDiIstrizioni;
endwhile;

 

In analogia a quanto mostrato nella descrizione del costrutto if...then...else..., è possibile impostare il ciclo while in modo che il corpo del ciclo sia costituito da istruzioni HTML. La sintassi è la seguente:

<?
while (condizione) : ?>
istruzione1 in HTML
<? endwhile ?>

Infine, in tabella 8.2 è riportato un parallelo tra cicli for e while. Le due versioni portano esattamente allo stesso risultato.

Ciclo for Ciclo while
                for ($i=0; $i<10; $i++) {
echo("Iterazione n° $i

"); }
                $i=0;
while ($i<10) {
echo ("Iterazione n° $i

");
$i++; }
Tab.8.2: Confronto tra cicli for e cicli while


Ti potrebbe interessare anche

commenta la notizia

C' 1 commento
Luca
Ti piaciuto l'articolo?