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