1
resposta

[Dúvida] Minha resposta

Não consegui encaixar o continue no laço

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:
        print(f"Livro disponível: {livro['nome']}.")
1 resposta

Oi, Beatriz!

É muito comum ter essa dúvida no começo, pois o continue funciona com uma lógica de "pulo", o que é um pouco diferente do if tradicional que você usou.

No seu código, você usou uma lógica direta: se o estoque for maior que zero, imprima. Isso funciona perfeitamente! Mas, para usar o continue, pensamos na exceção. O objetivo dele é interromper a repetição atual e saltar direto para o próximo item da lista, sem executar o que vem abaixo dele dentro do laço.

Entendendo o funcionamento do continue

Imagine o continue como um desvio no caminho. Quando o programa encontra essa palavra, ele ignora todo o código que resta naquela volta do laço e volta para o topo para pegar o próximo livro.

No caso da Ana, a lógica com continue ficaria assim:

  1. Percorremos a lista de livros.
  2. Verificamos se o livro não tem estoque (estoque igual a 0).
  3. Se o estoque for zero, acionamos o continue. O Python ignora o print e pula para o próximo livro.
  4. Se o estoque for maior que zero, o if é ignorado e o print acontece normalmente.

Exemplo de implementação

Veja como seu código pode ser adaptado para incluir essa instrução:

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:
    # Se o livro estiver esgotado, pulamos para a próxima repetição
    if livro["estoque"] == 0:
        continue
    
    # Esta linha só será lida se o 'continue' não for acionado
    print(f"Livro disponível: {livro['nome']}")

Por que usar o continue?

Embora o seu código original esteja correto, o continue ajuda a evitar que o seu código fique com muitos níveis de indentação (muitos espaços para a direita) quando você tem muitas validações antes de realizar a ação principal.

Ficou mais clara a diferença entre as duas formas de resolver?

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!