Ejercicios resueltos de bucles while, do-while y for en PHP

Informática y TelecomunicacionesActualizado el 3,11 KB

Resumen

Colección de ejercicios resueltos sobre estructuras de bucle en PHP: while, do-while y for, incluida la sintaxis de dos puntos. Se analiza qué muestra cada script, cómo escribir un bucle while con endwhile y cómo combinar bucles con condicionales if para filtrar valores. Sirve para practicar el control de iteraciones y detectar bucles infinitos.

Puntos clave

  • El bucle while evalúa la condición antes de ejecutar el bloque; si la condición es falsa desde el inicio, no se ejecuta ninguna iteración.
  • El bucle do-while ejecuta el bloque al menos una vez, porque la condición se evalúa al final.
  • En la sintaxis de dos puntos, while se cierra con endwhile y for con endfor.
  • El bucle for agrupa inicialización, condición e incremento en su cabecera, por ejemplo for ($i = 1; $i < 11; $i++).
  • Si no se actualiza la variable de control dentro de un while, el bucle puede volverse infinito.
  • Con $i += 3 el bucle avanza de tres en tres, produciendo 3 6 9 12 15 en el ejemplo.

Ponte a prueba

Ejercicio 1: ¿Cuál es el resultado de la ejecución de estas instrucciones?

$i = 1;
while ($i < 11) {
    echo "$i   ";
    $i++;
}

SOLUCIÓN:

1 2 3 4 5 6 7 8 9 10

Ejercicio 2: Escribe la estructura while del ejercicio 1 utilizando la sintaxis de dos puntos.

SOLUCIÓN:

$i = 1;
while ($i < 11):
    echo "$i   ";
    $i++;
endwhile;

Ejercicio 3: ¿Cuál es el resultado de la ejecución de estas instrucciones?

$i = 1;
do {
    echo "$i   ";
    $i++;
} while ($i < 11);

SOLUCIÓN:

1 2 3 4 5 6 7 8 9 10

Ejercicio 4: ¿Cuál es el resultado de la ejecución de estas instrucciones?

for ($i = 1; $i < 11; $i++) {
    echo "$i   ";
}

SOLUCIÓN:

1 2 3 4 5 6 7 8 9 10

Ejercicio 6: Escribir un script en PHP que muestre los números del 20 al 1.

Primero con una estructura while y después con una estructura for, ambas con la sintaxis de dos puntos.

$i = 20;
while ($i >= 1):
    echo "$i   ";
    $i--; // ($i = $i - 1)
endwhile;

for ($i = 20; $i >= 1; $i--):
    echo "$i   ";
endfor;

Estructuras de bifurcación condicional

Condicional simple (if), compuesta (if-else), switch, anidadas.

Estructuras de bucle

Bucle while, bucle do-while, bucle for.

Ejercicio 7: ¿Cuál es el resultado de la ejecución de estas instrucciones?

for ($i = 1; $i <= 50; $i++) {
    if ($i % 5 == 0):
        echo "$i   ";
    endif;
}

SOLUCIÓN:

Si el resto de la división entre $i y 5 es 0, se muestra el valor de $i.

En este caso, la solución es: 5 10 15 20 25 30 35 40 45 50

Ejercicio 8: ¿Cuál es el resultado de la ejecución de estas instrucciones?

$i = 1;
while ($i == 15):
    if ($i % 3 == 0):
        echo "$i   ";
    endif;
    $i++;
endwhile;

SOLUCIÓN:

No se muestra nada porque no entra en el bucle, ya que la condición $i == 15 es falsa desde el inicio.

Ejercicio 9: ¿Cuál es el resultado de la ejecución de estas instrucciones?

$i = 3;
while ($i <= 15):
    if ($i % 3 == 0):
        echo "$i   ";
        //$i++;  // Incrementar $i dentro del if para evitar bucle infinito
    endif;
    $i++;
endwhile;

SOLUCIÓN:

Si no se incrementa $i dentro del if, se produce un bucle infinito. Si se incrementa dentro del if, la salida sería 3 6 9 12 15.

Ejercicio 10: ¿Cuál es el resultado de la ejecución de estas instrucciones?

for ($i = 3; $i <= 15; $i += 3) {
    echo "$i   ";
}

SOLUCIÓN:

3 6 9 12 15

Ejercicio 13: ¿Cuál es el resultado de la ejecución de estas instrucciones?

for ($i = 2; $i <= 6; $i += 2) {
    echo "$i   ";
    echo "$i   ";
}

SOLUCIÓN:

Primera vez: 2 2

Segunda vez: 4 4

Tercera vez: 6 6

Solución en pantalla: 2 2 4 4 6 6

Descargar

PDF Word HTML

Preguntas frecuentes

¿Qué diferencia hay entre while y do-while en PHP?

El bucle while comprueba la condición antes de ejecutar el bloque, mientras que do-while lo ejecuta al menos una vez y comprueba la condición al final. Por eso do-while siempre muestra al menos un valor aunque la condición sea falsa desde el principio.

¿Cómo se escribe un while con sintaxis de dos puntos?

Se usa while (condición): seguido del bloque de instrucciones y se cierra con endwhile;. Es una alternativa equivalente a las llaves { } y es habitual en plantillas HTML.

Ponte a prueba

Tarjetas de repaso

Pulsa una tarjeta para ver la respuesta.

Test

1. ¿Qué muestra el bucle while ($i < 11) con $i = 1 e incremento en cada vuelta?
2. En el ejercicio con $i = 1 y while ($i == 15), ¿qué se muestra?
3. ¿Qué salida produce for ($i = 3; $i <= 15; $i += 3)?
4. ¿Qué ocurre en el script con while ($i <= 15) si el incremento $i++ está comentado dentro del if?
5. ¿Qué sintaxis cierra correctamente un bucle for escrito con dos puntos?
6. ¿Cuál es la salida del bucle for ($i = 2; $i <= 6; $i += 2) que hace echo dos veces por vuelta?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.