Instrução Continue
Parte da seção Fundamentos do Journey de PHP da Coddy — lição 52 de 71.
Enquanto o break sai de um loop completamente, às vezes você só quer pular a iteração atual e prosseguir para a próxima. É exatamente isso que a instrução continue faz.
Quando o PHP encontra continue, ele imediatamente pula para a próxima iteração do laço, ignorando qualquer código restante na iteração atual.
<?php
for ($i = 1; $i <= 5; $i++) {
if ($i === 3) {
continue;
}
echo $i . "\n";
}
?>Isso produz:
1
2
4
5Observe que 3 está faltando. Quando $i é igual a 3, a instrução continue pula o echo e vai diretamente para a próxima iteração onde $i se torna 4.
Um caso de uso comum é filtrar valores indesejados ao processar um array:
<?php
$numbers = [10, -5, 8, -3, 12];
foreach ($numbers as $num) {
if ($num < 0) {
continue;
}
echo $num . "\n";
}
?>Isso imprime apenas os números positivos: 10, 8 e 12. Os valores negativos são ignorados, mas o loop continua executando por todos os elementos.
A principal diferença: break interrompe o loop completamente, enquanto continue apenas pula para a próxima iteração.
Desafio
FácilLeia duas linhas de entrada:
- Uma lista separada por vírgulas de inteiros (ex.:
3,7,12,5,8,20,15) - Um número divisor
Use um loop foreach para iterar pelo array. Use continue para pular quaisquer números que sejam divisíveis pelo divisor dado. Imprima todos os outros números, cada um em uma linha separada.
Exemplo 1:
Se as entradas forem 1,2,3,4,5,6,7,8,9,10 e 3, a saída deve ser:
1
2
4
5
7
8
10(Os números 3, 6 e 9 são pulados porque são divisíveis por 3)
Exemplo 2:
Se as entradas forem 10,15,20,25,30 e 5, a saída deve ser:
(Todos os números são divisíveis por 5, então nada é impresso)
Exemplo 3:
Se as entradas forem 7,14,21,10,5 e 7, a saída deve ser:
10
5Folha de consulta
A declaração continue pula a iteração atual de um loop e passa para a próxima, sem sair completamente do loop.
Exemplo básico com loop for:
<?php
for ($i = 1; $i <= 5; $i++) {
if ($i === 3) {
continue;
}
echo $i . "\n";
}
?>Isso exibe 1, 2, 4, 5 (pulando 3).
Usando continue com foreach para filtrar valores de array:
<?php
$numbers = [10, -5, 8, -3, 12];
foreach ($numbers as $num) {
if ($num < 0) {
continue;
}
echo $num . "\n";
}
?>Isso imprime apenas números positivos (10, 8, 12), pulando valores negativos.
Diferença principal: break sai completamente do loop, enquanto continue apenas pula para a próxima iteração.
Experimente você mesmo
<?php
// Ler entrada
$input = trim(fgets(STDIN));
$divisor = intval(trim(fgets(STDIN)));
// Converter string separada por vírgulas em array de inteiros
$numbers = array_map('intval', explode(',', $input));
// TODO: Escreva seu código abaixo
// Use um loop foreach para iterar através de $numbers
// Use continue para pular números divisíveis por $divisor
// Imprima todos os outros números, cada um em uma linha separada
?>Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições 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