Sentencia continue
Parte de la sección Fundamentos del Journey de PHP de Coddy — lección 52 de 71.
Si bien break sale completamente de un bucle, a veces solo quieres omitir la iteración actual y pasar a la siguiente. Eso es exactamente lo que hace la sentencia continue.
Cuando PHP encuentra continue, salta inmediatamente a la siguiente iteración del bucle, omitiendo cualquier código restante en la iteración actual.
<?php
for ($i = 1; $i <= 5; $i++) {
if ($i === 3) {
continue;
}
echo $i . "\n";
}
?>Esto produce:
1
2
4
5Observa que falta el 3. Cuando $i es igual a 3, la instrucción continue omite el echo y pasa directamente a la siguiente iteración donde $i se convierte en 4.
Un caso de uso común es filtrar valores no deseados mientras se procesa un array:
<?php
$numbers = [10, -5, 8, -3, 12];
foreach ($numbers as $num) {
if ($num < 0) {
continue;
}
echo $num . "\n";
}
?>Esto imprime solo los números positivos: 10, 8 y 12. Los valores negativos se omiten, pero el bucle sigue ejecutándose a través de todos los elementos.
La diferencia clave: break detiene el bucle por completo, mientras que continue solo omite a la siguiente iteración.
Desafío
FácilLee dos líneas de entrada:
- Una lista separada por comas de enteros (p. ej.,
3,7,12,5,8,20,15) - Un número divisor
Usa un bucle foreach para iterar a través del array. Usa continue para omitir cualquier número que sea divisible por el divisor dado. Imprime todos los demás números, cada uno en una línea separada.
Ejemplo 1:
Si las entradas son 1,2,3,4,5,6,7,8,9,10 y 3, la salida debería ser:
1
2
4
5
7
8
10(Los números 3, 6 y 9 se omiten porque son divisibles por 3)
Ejemplo 2:
Si las entradas son 10,15,20,25,30 y 5, la salida debería ser:
(Todos los números son divisibles por 5, por lo que no se imprime nada)
Ejemplo 3:
Si las entradas son 7,14,21,10,5 y 7, la salida debería ser:
10
5Hoja de referencia
La instrucción continue omite la iteración actual de un bucle y pasa a la siguiente, sin salir completamente del bucle.
Ejemplo básico con bucle for:
<?php
for ($i = 1; $i <= 5; $i++) {
if ($i === 3) {
continue;
}
echo $i . "\n";
}
?>Esto produce 1, 2, 4, 5 (omitiendo 3).
Usando continue con foreach para filtrar valores de array:
<?php
$numbers = [10, -5, 8, -3, 12];
foreach ($numbers as $num) {
if ($num < 0) {
continue;
}
echo $num . "\n";
}
?>Esto imprime solo números positivos (10, 8, 12), omitiendo valores negativos.
Diferencia clave: break sale completamente del bucle, mientras que continue solo omite hasta la siguiente iteración.
Pruébalo tú mismo
<?php
// Leer entrada
$input = trim(fgets(STDIN));
$divisor = intval(trim(fgets(STDIN)));
// Convertir cadena separada por comas a array de enteros
$numbers = array_map('intval', explode(',', $input));
// TODO: Escribe tu código a continuación
// Usa un bucle foreach para iterar a través de $numbers
// Usa continue para saltar números divisibles por $divisor
// Imprime todos los otros números, cada uno en una línea separada
?>Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators