W3docs

continue

La palabra clave "continue" en PHP es una estructura de control que permite saltar a la siguiente iteración de un bucle cuando se cumple una condición.

La palabra clave "continue" en PHP: Guía completa

Como desarrollador PHP, probablemente hayas utilizado bucles para iterar sobre arrays o realizar otras tareas. La palabra clave continue es una estructura de control en PHP que salta inmediatamente a la siguiente iteración cuando se cumple una condición especificada. En este artículo, exploraremos en profundidad la sintaxis y el uso de la palabra clave continue, con numerosos ejemplos para ayudarte a dominar esta importante característica de PHP.

Sintaxis

La palabra clave continue se utiliza para omitir la iteración actual y pasar a la siguiente en PHP. A continuación se muestra la sintaxis básica para usar la palabra clave continue en PHP:

Sintaxis de PHP continue

continue;

En este ejemplo, la palabra clave continue omite la iteración actual y pasa a la siguiente.

Ejemplos

Veamos algunos ejemplos prácticos de cómo se puede utilizar la palabra clave "continue":

Ejemplos de PHP continue

<?php

// Example 1
for ($i = 0; $i < 10; $i++) {
  if ($i == 5) {
    continue;
  }
  echo $i . PHP_EOL;
}

// Output: 0 1 2 3 4 6 7 8 9

// Example 2
$myArray = ["apple", "banana", "cherry", "date"];
foreach ($myArray as $value) {
  if ($value == "cherry") {
    continue;
  }
  echo $value . PHP_EOL;
}

// Output: apple banana date

En estos ejemplos, la palabra clave continue omite iteraciones específicas cuando se cumple una condición.

Uso avanzado y comparación

Saltar bucles anidados

Por defecto, continue solo afecta al bucle más interno. Para saltar iteraciones de un bucle externo, se puede pasar un argumento numérico opcional que indica a PHP cuántos niveles de bucles enclosing debe aplicar el continue:

<?php

for ($i = 1; $i <= 3; $i++) {
  for ($j = 1; $j <= 3; $j++) {
    if ($j == 2) {
      continue 2; // skip to the next iteration of the OUTER loop
    }
    echo "i=$i, j=$j" . PHP_EOL;
  }
}

// Output:
// i=1, j=1
// i=2, j=1
// i=3, j=1

Dado que continue 2 salta a la siguiente iteración del bucle externo, el bucle interno nunca llega a $j == 3. Un continue simple (o continue 1) solo omitiría la iteración interna actual y el bucle interno aún imprimiría j=3.

continue vs break

Los principiantes suelen confundir estas dos estructuras de control. Mientras que continue omite la iteración actual y pasa a la siguiente, break termina inmediatamente el bucle completo. Usa continue para filtrar elementos dentro de un bucle, y break para salir anticipadamente una vez que tienes lo que necesitas.

<?php

foreach ([1, 2, 3, 4, 5] as $n) {
  if ($n == 3) {
    continue; // skip 3, keep looping
  }
  echo $n . PHP_EOL;
}
// Output: 1 2 4 5

foreach ([1, 2, 3, 4, 5] as $n) {
  if ($n == 3) {
    break;    // stop the loop at 3
  }
  echo $n . PHP_EOL;
}
// Output: 1 2

Un error común: continue dentro de switch

Dentro de una instrucción switch, continue se comporta como break y solo sale del switch. PHP incluso emite una advertencia. Cuando estás dentro de un bucle y un switch y quieres saltar la iteración del bucle, usa continue 2:

<?php

foreach (["save", "skip", "delete"] as $action) {
  switch ($action) {
    case "skip":
      continue 2; // skip this loop iteration, not just the switch
    default:
      echo "Handling: $action" . PHP_EOL;
  }
}

// Output:
// Handling: save
// Handling: delete

Ventajas

Usar la palabra clave continue tiene varias ventajas, entre ellas:

  • Mayor eficiencia del código: Ayuda a omitir iteraciones innecesarias, haciendo que el código se ejecute de forma más eficiente.
  • Lógica simplificada: Permite manejar el filtrado condicional directamente dentro del bucle, reduciendo la necesidad de bloques if-else anidados complejos.

Conclusión

En conclusión, la palabra clave continue es una herramienta poderosa para los desarrolladores PHP, que les permite omitir iteraciones específicas del bucle y mejorar la eficiencia y legibilidad de su código. Recuerda que funciona en todo tipo de bucles — for, foreach, while y do...while — y que el argumento de nivel opcional (continue 2) es lo que permite alcanzar bucles anidados.

Temas relacionados

Práctica

Práctica
¿Cuál es el propósito de la instrucción 'continue' en PHP?
¿Cuál es el propósito de la instrucción 'continue' en PHP?
Was this page helpful?