1
resposta

Prática - Utilidade do continue em laços

livros = [
    {"nome": "1984", "estoque": 5},
    {"nome": "Dom Casmurro", "estoque": 0},
    {"nome": "O Pequeno Príncipe", "estoque": 3},
    {"nome": "O Hobbit", "estoque": 0},
    {"nome": "Orgulho e Preconceito", "estoque": 2}
]

for livro in livros:
    if livro["estoque"] == 0:
        continue  # pula para o próximo livro sem executar o print
    print(f"Livro disponível: {livro['nome']}")

Saída:

Livro disponível: 1984 
Livro disponível: O Pequeno Príncipe
Livro disponível: Orgulho e Preconceito
1 resposta

Olá, Aristóteles. Como vai?

Excelente exemplo! O uso do continue é uma das formas mais limpas de aplicar o conceito de filtro dentro de um laço de repetição. Em vez de aninhar todo o seu código dentro de um bloco if, você utiliza o continue para descartar o que não interessa logo no início, mantendo o restante do código mais legível e com menos recuos (identação).

Para enriquecer sua prática, vamos analisar o comportamento lógico desse comando:

1. O Desvio de Fluxo
Diferente do break (que encerra o laço completamente), o continue apenas interrompe a iteração atual. Ele ignora todas as linhas de código que vêm abaixo dele e volta imediatamente para o topo do laço para processar o próximo item da lista.

2. Quando usar o continue?
Ele é ideal para situações de "Guardião":

  • Limpeza de dados: Pular registros nulos ou inválidos.
  • Filtros de regras: Como no seu caso, pular produtos sem estoque.
  • Otimização: Evitar processamentos pesados em itens que já sabemos que não atendem aos critérios.

**3. Comparação Visual: Com vs. Sem continue**
Veja como o seu código ficaria sem o continue. Note que a lógica principal (print) precisa ficar "guardada" dentro do if:

# Abordagem sem continue
for livro in livros:
    if livro["estoque"] > 0:
        print(f"Livro disponível: {livro['nome']}")

Ambas as formas funcionam, mas o continue brilha quando você tem muitas verificações. Em vez de ter vários if um dentro do outro, você faz várias verificações com continue no topo, deixando o "caminho feliz" do código livre para ser executado.

Parabéns por mais esse exemplo prático e bem estruturado! Dominar esses pequenos controles de fluxo é o que diferencia um código funcional de um código profissional e performático.

Espero que possa ter lhe ajudado!