Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Utilidade do continue em laços

# Questão 9 - Livros disponíveis em estoque

# Lista de livros
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}
]

# Percorre a lista de livros
for livro in livros:

    # Verifica se o estoque é igual a zero
    if livro["estoque"] == 0:
        # Ignora livros sem estoque
        continue

    # Exibe os livros disponíveis
    print(f"Livro disponível: {livro['nome']}")
2 respostas

Olá, Estudante. Como vai?

Seu exemplo ilustra perfeitamente a utilidade da instrução continue. Enquanto o break serve para encerrar o laço prematuramente, o continue funciona como um "atalho" para a próxima iteração, interrompendo apenas o ciclo atual.

O uso que você fez é considerado uma cláusula de guarda. Essa é uma boa prática de programação que ajuda a manter o código mais limpo e legível. Sem o continue, você teria que envolver o seu print dentro de um bloco if, o que, em códigos mais complexos, poderia gerar muitos níveis de indentação (o famoso "código em formato de pirâmide").

Para agregar mais valor ao seu entendimento, veja a diferença visual de como o Python processa essas instruções:

Note alguns pontos técnicos sobre o que você construiu:

  • Eficiência de leitura: Ao usar o continue, você deixa claro logo no início do laço quais condições não nos interessam. Isso facilita para que outros desenvolvedores entendam rapidamente o filtro que está sendo aplicado.
  • Manutenibilidade: Se no futuro você precisar adicionar mais 10 linhas de lógica para processar os livros disponíveis, elas não precisarão estar "dentro" de um if, mantendo o código no nível principal de indentação do laço for.

Uma curiosidade: você poderia obter um resultado similar utilizando a função filter() do Python, mas a sua abordagem com for e continue é muito mais comum quando precisamos realizar ações (como imprimir ou salvar dados) enquanto percorremos a lista.

Espero que possa ter lhe ajudado!

solução!

Obrigado pela dica do filter()