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:
- Percorremos a lista de livros.
- Verificamos se o livro não tem estoque (estoque igual a 0).
- Se o estoque for zero, acionamos o
continue. O Python ignora o print e pula para o próximo livro. - 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 com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!