Volver a la página principal
martes 23 julio 2024
7

Cómo Utilizar continue en Bucles Anidados en PHP

Conceptos Básicos de continue

La sintaxis básica de continue es simple y se utiliza dentro de estructuras de bucle como for, foreach, while y do-while. Cuando se encuentra una sentencia continue, la ejecución del bucle salta inmediatamente a la siguiente iteración.

Ejemplo Básico de continue

<?php
for ($i = 0; $i < 10; $i++) {
    if ($i % 2 == 0) {
        continue; // Salta los números pares
    }
    echo $i . " ";
}
?>

Este código imprimirá los números impares del 0 al 9, ya que continue omite la impresión de los números pares.

Uso de continue en Bucles Anidados

En bucles anidados, continue puede controlar el flujo de cada bucle de forma independiente. PHP permite especificar a cuál bucle debe aplicar continue utilizando un argumento opcional, n, que indica cuántos niveles de bucle debe saltar.

Ejemplo de Bucles Anidados sin continue

Primero, veamos un ejemplo de bucles anidados sin el uso de continue:

<?php
for ($i = 1; $i <= 3; $i++) {
    for ($j = 1; $j <= 3; $j++) {
        echo "i = $i, j = $j\n";
    }
}
?>

La salida será:

i = 1, j = 1
i = 1, j = 2
i = 1, j = 3
i = 2, j = 1
i = 2, j = 2
i = 2, j = 3
i = 3, j = 1
i = 3, j = 2
i = 3, j = 3

Usando continue en el Bucle Interno

Ahora, modifiquemos el ejemplo anterior para utilizar continue en el bucle interno:

<?php
for ($i = 1; $i <= 3; $i++) {
    for ($j = 1; $j <= 3; $j++) {
        if ($j == 2) {
            continue; // Salta la iteración cuando j es 2
        }
        echo "i = $i, j = $j\n";
    }
}
?>

La salida será:

i = 1, j = 1
i = 1, j = 3
i = 2, j = 1
i = 2, j = 3
i = 3, j = 1
i = 3, j = 3

Usando continue con un Argumento

Para controlar el bucle externo desde el interno, podemos usar continue con un argumento. Veamos un ejemplo en el que queremos saltar a la siguiente iteración del bucle externo cuando se cumple una condición en el bucle interno.

<?php
for ($i = 1; $i <= 3; $i++) {
    for ($j = 1; $j <= 3; $j++) {
        if ($j == 2) {
            continue 2; // Salta a la siguiente iteración del bucle externo
        }
        echo "i = $i, j = $j\n";
    }
}
?>

La salida será:

i = 1, j = 1
i = 2, j = 1
i = 3, j = 1

Explicación

  • continue 2: Indica que se debe saltar dos niveles de bucle, es decir, continuar con la siguiente iteración del bucle externo.

Ejemplo Completo

Consideremos un escenario en el que tenemos una matriz bidimensional y queremos imprimir los elementos, pero omitir ciertos valores específicos.

<?php
$matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];

for ($i = 0; $i < count($matrix); $i++) {
    for ($j = 0; $j < count($matrix[$i]); $j++) {
        if ($matrix[$i][$j] == 5) {
            continue 2; // Omite el valor 5 y salta al siguiente bucle externo
        }
        echo $matrix[$i][$j] . " ";
    }
    echo "\n"; // Nueva línea para cada fila
}
?>

La salida será:

1 2 3 
7 8 9

En este ejemplo, cuando se encuentra el valor 5, se omite y se continúa con la siguiente iteración del bucle externo, lo que resulta en la omisión completa de la segunda fila en la matriz.

Conclusión

La sentencia continue es una herramienta poderosa en PHP para controlar el flujo de ejecución dentro de los bucles. En bucles anidados, continue puede utilizarse con un argumento para especificar cuántos niveles de bucle deben saltarse. Esta funcionalidad es útil para manejar casos complejos en los que necesitas omitir ciertas iteraciones basadas en condiciones específicas. Con los ejemplos y explicaciones proporcionadas, ahora deberías tener una comprensión sólida de cómo utilizar continue en tus propios proyectos PHP.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer