Estructuras repetitivas while y do-while en PHP

¡Bienvenido a una nueva lección de nuestro curso básico de PHP 8. Hoy vamos a meternos con las estructuras repetitivas while y do-while, esas herramientas geniales que hacen que tu programa repita acciones como si fuera un robot incansable. Si ya manejas condicionales if-else, esto es el siguiente paso para automatizar tareas. Todo va a ser súper claro, práctico y con ejemplos que te van a flipar. ¡Empecemos! 

¿Qué son las estructuras repetitivas while y do-while? 

Las estructuras repetitivas, o bucles, son como las cintas de correr del código: ejecutan un bloque de instrucciones una y otra vez mientras se cumpla una condición. Son perfectas cuando necesitas repetir algo (como contar, sumar o recorrer datos) hasta que se logra un objetivo o la condición dice «para». 

En PHP, tenemos varias opciones como while, do-while, for y foreach, pero hoy nos enfocamos en while y do-while. La diferencia está en cómo y cuándo chequean la condición, ¡y eso lo veremos en acción! 

La estructura while: Repite mientras sea verdad 

El bucle while es sencillo: revisa una condición y, si es true, ejecuta el código dentro. Si la condición arranca en false, no hace nada. Mira la receta básica: 

while (condición) { 
    // Código que se repite mientras la condición sea verdadera 
} 

Ejemplo práctico con while 

¡Manos a la obra! Crea un archivo repetitivas.php en curso_php8 (dentro de C:\xampp\htdocs) y prueba esto: 

<?php 
    $cont = 0; 
 
    while ($cont < 10) { 
        $cont++; 
        echo "Mensaje enviado número: " . $cont . "<br>"; 
    } 
?>

Abre http://localhost/curso_php8/repetitivas.php. Verás:  

Mensaje enviado número: 1 
Mensaje enviado número: 2 
Mensaje enviado número: 10

¿Qué pasó?  

  • $cont empieza en 0. 
  • El while chequea si $cont < 10. Como es true, entra al bucle. 
  • Dentro, $cont++ suma 1 cada vez y mostramos el mensaje. 
  • Cuando $cont llega a 10, la condición se vuelve false y el bucle para. 

Truco: Si no pones $cont++, el bucle se vuelve infinito y tu servidor dirá «¡basta!». Siempre asegúrate de que la condición cambie. 

La estructura do-while: Hazlo al menos una vez 

El bucle do-while es parecido, pero con un giro: el código se ejecuta al menos una vez antes de revisar la condición. Esto lo hace ideal cuando quieres garantizar una ejecución inicial. Aquí va la fórmula: 

do { 
    // Código que se ejecuta al menos una vez 
} while

Ejemplo práctico con do-while 

Añade esto a tu repetitivas.php:

<?php 
    $cont2 = 10; 
    $suma = 0; 
 
    do { 
        $suma = $suma + $cont2; 
        $cont2++; 
    } while ($cont2 < 10); 
 
    echo "La sumatoria es: " . $suma; 
?>

La sumatoria es: 10 
  

¿Qué pasó?  

  • $cont2 empieza en 10 y $suma en 0. 
  • El do suma $cont2 a $suma (10 + 0 = 10) y sube $cont2 a 11. 
  • Luego revisa $cont2 < 10. Como 11 no es menor que 10, para ahí. 
  • Por eso solo se ejecuta una vez, pero si $cont2 empezara en 5, sumaría 5 + 6 + 7 + 8 + 9 = 35. 

Prueba cambiar $cont2 a 5 y recarga. ¡Verás la diferencia! 

Diferencia clave 

  • while: Revisa primero, luego actúa. Si la condición es false de entrada, no pasa nada. 
  • do-while: Actúa primero, luego revisa. Siempre corre al menos una vez. 

Ejemplos prácticos para brillar 

Ejemplo 1: Contando hacia atrás 

<?php 
    $numero = 5; 
 
    while ($numero > 0) { 
        echo "Cuenta regresiva: " . $numero . "<br>"; 
        $numero--; 
    } 
    echo "¡Despegue!"; 
?>

Resultado:  

Cuenta regresiva: 5 
Cuenta regresiva: 4 
Cuenta regresiva: 3 
Cuenta regresiva: 2 
Cuenta regresiva: 1 
¡Despegue! 

Ejemplo 2: Suma hasta que digas basta 

<?php 
    $total = 0; 
    $i = 0; 
 
    do { 
        $total += $i; 
        $i++; 
    } while ($i <= 5); 
 
    echo "Suma total de 0 a 5: " . $total; 
?> 

Resultado:  

Suma total de 0 a 5: 15 
Ejercicios para practicar 

¡Tu turno de rockearlo! Ve a curso_php8 y prueba estos retos: 

  1. Tabla de multiplicar del 7 
  2. Crea tabla7.php:  
<?php 
    $num = 1; 
 
    while ($num <= 10) { 
        $resultado = 7 * $num; 
        echo "7 x $num = $resultado<br>"; 
        $num++; 
    } 
?> 
  1. Factorial con do-while 

Crea factorial.php:  

<?php 
    $numero = 5; 
    $factorial = 1; 
    $contador = 1; 
 
    do { 
        $factorial *= $contador; 
        $contador++; 
    } while ($contador <= $numero); 
 
    echo "El factorial de $numero es: $factorial"; 
?> 

Ejecuta en localhost/curso_php8/ y juega con los valores (prueba $numero = 3 o 6). 

Consejos para no enredarte 

  • Cambia la condición: Siempre incluye algo como $cont++ o $i– para que el bucle no sea eterno. 
  • while vs do-while: Usa while si no estás seguro de que deba correr al menos una vez; usa do-while si quieres esa garantía. 
  • Prueba paso a paso: Usa echo dentro del bucle para ver cómo cambia cada variable. 

¡A por más repeticiones! 

¡Gran trabajo, genio! Ahora dominas while y do-while como todo un pro, listos para repetir tareas sin cansarte. En la próxima lección, veremos for y foreach para llevar tus bucles al siguiente nivel. Si algo no te queda claro, déjame un comentario o revisa el código en GitHub. 

Lo que aprendiste hoy: 

  • Qué son: Bucles para repetir código mientras una condición diga «sí». 
  • while: Revisa primero, actúa si es true. Perfecto para contar o recorrer. 
  • do-while: Actúa al menos una vez, luego revisa. Ideal cuando necesitas empezar sí o sí. 
  • Ejemplos vivos: Hiciste mensajes, sumas y cuentas regresivas como crack. 
  • Practicaste: Armaste la tabla del 7 y calculaste factoriales. ¡Eso es poder! 
  • Tip del pro: Asegúrate de que la condición cambie o te quedarás girando forever. 
Scroll al inicio