MÓDULO 1: BACKEND

Bucles

Los bucles permiten repetir código una y otra vez sin escribirlo múltiples veces. Imagina que quieres mostrar 100 productos en una tienda online. ¿Escribirías 100 líneas de código? No. Usarías un bucle.


1. El Bucle for

Repite un bloque de código un número específico de veces.

<?php
  // Sintaxis: for (inicio; condición; incremento)
  for ($i = 0; $i < 5; $i++) {
    echo "Número: " . $i . "<br>";
  }

  // Resultado:
  // Número: 0
  // Número: 1
  // Número: 2
  // Número: 3
  // Número: 4
?>

Partes del bucle for:

  • Inicio: $i = 0 → Donde comienza el contador.
  • Condición: $i < 5 → Mientras esto sea verdadero, continúa.
  • Incremento: $i++ → Aumenta el contador en cada iteración.
// Contar hacia atrás
for ($i = 5; $i > 0; $i--) {
  echo $i . "<br>";
}

// Incrementar de 2 en 2
for ($i = 0; $i <= 10; $i += 2) {
  echo $i . " ";
}
// Resultado: 0 2 4 6 8 10

2. El Bucle while

Repite mientras una condición sea verdadera. Útil cuando no sabes cuántas iteraciones necesitas.

<?php
  $contador = 0;

  while ($contador < 5) {
    echo "Contador: " . $contador . "<br>";
    $contador++;
  }

  // Ejemplo práctico: Leer datos hasta encontrar uno específico
  $numero = 0;
  while ($numero != 10) {
    $numero = rand(1, 20); // Número aleatorio
    echo "Número: " . $numero . "<br>";
  }
?>

⚠️ ¡Cuidado! Si la condición nunca se vuelve falsa, el bucle se ejecutará infinitamente. Siempre asegúrate de que algo cambie dentro del bucle.


3. El Bucle do...while

Similar a while, pero ejecuta el código al menos una vez antes de verificar la condición.

<?php
  $contador = 0;

  do {
    echo "Contador: " . $contador . "<br>";
    $contador++;
  } while ($contador < 5);

  // Diferencia con while:
  // do...while: Se ejecuta al menos una vez
  // while: Podría no ejecutarse nunca

  // Ejemplo:
  do {
    echo "Esto se imprime";
  } while (false); // Se imprime una vez
?>

4. El Bucle foreach

La forma más fácil de recorrer arrays. Funciona con arrays indexados y asociativos.

<?php
  // Con array indexado
  $frutas = ["Manzana", "Banana", "Naranja"];

  foreach ($frutas as $fruta) {
    echo $fruta . "<br>";
  }

  // Con índice y valor
  foreach ($frutas as $indice => $fruta) {
    echo $indice . ": " . $fruta . "<br>";
  }

  // Con array asociativo
  $persona = [
    "nombre" => "Juan",
    "edad" => 25,
    "ciudad" => "Madrid"
  ];

  foreach ($persona as $clave => $valor) {
    echo $clave . ": " . $valor . "<br>";
  }
?>

5. break y continue

Controla el flujo dentro de los bucles.

<?php
  // break: Salir del bucle completamente
  for ($i = 0; $i < 10; $i++) {
    if ($i == 5) {
      break; // Sale del bucle
    }
    echo $i . "<br>";
  }
  // Imprime: 0 1 2 3 4

  // continue: Salta a la siguiente iteración
  for ($i = 0; $i < 5; $i++) {
    if ($i == 2) {
      continue; // Salta esta iteración
    }
    echo $i . "<br>";
  }
  // Imprime: 0 1 3 4 (se salta el 2)
?>

6. Bucles Anidados

Un bucle dentro de otro bucle. Útil para tablas o matrices.

<?php
  // Crear una tabla de multiplicar
  for ($i = 1; $i <= 3; $i++) {
    for ($j = 1; $j <= 3; $j++) {
      echo $i . " x " . $j . " = " . ($i * $j) . "<br>";
    }
    echo "---<br>";
  }
?>

7. Caso Práctico: Mostrar Productos en HTML

Usa bucles para generar HTML dinámicamente.

<?php
  $productos = [
    ["nombre" => "Laptop", "precio" => 999.99],
    ["nombre" => "Mouse", "precio" => 29.99],
    ["nombre" => "Teclado", "precio" => 79.99]
  ];
?>

<table border="1">
  <tr>
    <th>Producto</th>
    <th>Precio</th>
  </tr>
  <?php
    foreach ($productos as $producto) {
      echo "<tr>";
      echo "<td>" . $producto["nombre"] . "</td>";
      echo "<td>$" . $producto["precio"] . "</td>";
      echo "</tr>";
    }
  ?>
</table>

8. Comparación de Bucles

¿Cuál usar en cada situación?

for

Cuando sabes exactamente cuántas veces repetir.

for ($i = 0; $i < 10; $i++) { }

while

Cuando depende de una condición que puede cambiar.

while ($condicion) { }

do...while

Cuando necesitas ejecutar al menos una vez.

do { } while ($condicion);

foreach

Cuando recorres un array (RECOMENDADO para arrays).

foreach ($array as $valor) { }

🛠️ Tu Misión

Crea un archivo bucles.php con un servidor local:

  1. Usa un bucle for para imprimir los números del 1 al 10.
  2. Usa un bucle for para imprimir los números del 10 al 1 (hacia atrás).
  3. Usa un bucle for para imprimir solo los números pares del 1 al 20.
  4. Crea un array con 5 nombres y recórrelo con foreach.
  5. Crea un array asociativo con 3 productos (nombre, precio) y recórrelo mostrando los datos en una tabla HTML.
  6. Usa un bucle while que cuente desde 1 hasta 5.
  7. Usa un bucle for que se detenga cuando encuentre el número 7.
  8. Usa un bucle for que salte el número 5 (usa continue).
  9. Crea un bucle anidado que genere una tabla de multiplicar del 1 al 5.
  10. Bonus: Crea un array de estudiantes con nombre y calificación, recórrelo y muestra solo los que tienen calificación mayor a 7.