gratiszona

while, do while

while

Los bucles while son los tipos de bucle mas simples en PHP. Se comportan como su contrapartida en C. La forma basica
de una sentencia while es:
while (expr) sentencia
El significado de una sentencia while es simple. Le dice a PHP que ejecute la(s) sentencia(s) anidada(s) repetidamente
mientras la expresion while se evalue como TRUE. El valor de la expresion es comprobado cada vez al principio del bucle
asi que incluso si este valor cambia durante la ejecucion de la(s) sentencia(s) anidada(s), la ejecucion no parara hasta el fin
de la iteracion (cada vez que PHP ejecuta las sentencias en el bucle es una iteracion). A veces, si la expresion while se
evalua como FALSE desde el principio de todo, la(s) sentencia(s) anidada(s) no se ejecutaran ni siquiera una vez.
Como con la sentencia if, se pueden agrupar multiples sentencias dentro del mismo bucle while encerrando un grupo de
sentencias con llaves, o usando la sintaxis alternativa:
while (expr): sentencia ... endwhile;
Los siguientes ejemplos son identicos y ambos imprimen numeros del 1 al 10:
/* ejemplo 1 */
$i = 1;
while ($i <= 10) {
print $i++; /* el valor impreso seria
$i antes del incremento
(post-incremento) */
}
/* ejemplo 2 */
$i = 1;
while ($i <= 10):
print $i;
$i++;
endwhile;

do..while

Los bucles do..while son muy similares a los bucles while, excepto que las condiciones se comprueban al final de cada
iteracion en vez de al principio. La principal diferencia frente a los bucles regulares while es que se garantiza la ejecucion
de la primera iteracion de un bucle do..while (la condicion se comprueba solo al final de la iteracion), mientras que
puede no ser necesariamente ejecutada con un bucle while regular (la condicion se comprueba al principio de cada
iteracion, si esta se evalua como FALSE desde el principio la ejecucion del bucle finalizara inmediatamente).
Hay una sola sintaxis para los bucles do..while:
$i = 0;
do {
print $i;
} while ($i>0);

El bucle de arriba se ejecutaria exactamente una sola vez, despues de la primera iteracion, cuando la condicion se
comprueba, se evalua como FALSE ($i no es mas grande que 0) y la ejecucion del bucle finaliza.
Los usuarios avanzados de C pueden estar familiarizados con un uso distinto del bucle do..while, para permitir parar la
ejecucion en medio de los bloques de codigo, encapsulandolos con do..while(0) y usando la sentencia break. El
siguiente fragmento de codigo demuestra esto:
do {
if ($i < 5) {
print "i no es lo suficientemente grande";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
print "i es correcto";
...procesa i...
} while(0);

Anterior: if else elseif en php
Siguiente: bucle for en php