jueves, 29 de enero de 2009

Manual de PHP 31. Bucles: do... while

El bucle do... while

Estamos ante una variante del bucle while que hemos visto en la página anterior.

La sintaxis es la siguiente:

do {
...intrucción 1...
.... instruccion2...
} while(condición) ;

Se diferencia de while en que en este caso se comprueba la condición después de haber ejecutado las instrucciones contenidas en el bucle, con lo cual, en el caso de que desde el comienzo no se cumplieran las condiciones establecidas en while, las instrucciones del bucle se ejecutarían una vez.

Respecto a la sintaxis, como puedes observar, detrás de do se inserta una llave ({) que señala el comienzo de las instrucciones pertenecientes al bucle. El final de esas instrucciones lo señala la otra llave (}) que precede a while(condición).

break

La función break –de forma similar a lo que ocurría en switch– permite interrumpir la ejecución de bucle.

Tal como puede verse en el ejemplo, podría –entre otras posibilidades– utilizarse para evitar la primera ejecución de las instrucciones contenidas en el bucle, en el caso de que, desde un primer momento, no se cumplieran las condiciones establecidas en while.




El bucle do ... while


<?
$A=0;
do {
++$A;
echo "Valores de A usando el do: ",$A,"<br>";
} while($A<5);
$B=7;
do {
echo "Pese a que B es mayor que 5 se ejecuta una vez. B= ",$B,"<br>";
} while($B<5);
?>




<?
$A=500;
do {
if ($A>=500) {
echo "No puede ejecutarse el bucle, porque no se cumple la condicion";
break;
}

++$A;
echo "Valores de A usando el do: ",$A,"<br>";

} while($A<500);

echo "<BR>He salido del bucle porque A es: ",$A;
?>




El ejemplo que tienes aquí debajo es similar al ejemplo nº 40 de la página anterior. Sólo hemos sustituido los bucles while que allí habíamos utilizado por otros del tipo do ... while.


Ver código fuente



No lo hemos comentado en la página anterior pero break se comporta en el caso de while de forma idéntica a la descrita aquí.


ejemplo44.php Ver código fuente



Fuente:
Página del ifstic: http://www.isftic.mepsyd.es/formacion/enred/

No hay comentarios: