Olá, Marcelo. Como vai?
Excelente escolha de exemplo para ilustrar a utilidade do comando continue! O cenário de controle de estoque em um e-commerce ou biblioteca é um clássico da programação que traduz perfeitamente a teoria para a prática do mercado.
Gostaria de destacar os pontos fortes da sua lógica e trazer uma dica de ouro sobre legibilidade de código quando utilizamos o continue:
1. O papel do continue como Filtro de Fluxo
Seu raciocínio foi impecável. O objetivo do continue é interromper a iteração atual do laço e saltar imediatamente para a próxima, sem executar o restante das linhas abaixo dele. No seu código, assim que o Python encontra um livro com estoque == 0, ele "ignora" aquele livro e passa para o próximo da lista. Isso é excelente para evitar processamentos desnecessários.
2. Dica de Clean Code: Eliminando o else redundante
Uma das maiores vantagens estéticas e de legibilidade do continue é que ele nos permite eliminar a necessidade de usar o bloco else.
Como o continue funciona como uma "barreira" que desvia o fluxo do código caso a condição do if seja verdadeira, qualquer linha de código que estiver escrita abaixo do bloco if só será executada se a condição for falsa. Portanto, o else se torna redundante.
Veja como o seu código pode ser refatorado para ficar ainda mais direto e com menos recuos (indentações):
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
# Não precisamos do 'else'. Se o estoque não for 0, o Python chega naturalmente aqui.
print(f'Livro disponível: {livro["nome"]}')
Essa abordagem de usar o if com o continue logo no início do laço para descartar o que não queremos é conhecida no mercado como Guard Clauses (Cláusulas de Guarda). Ela deixa o código muito mais limpo e fácil de ler, pois evita que fiquemos aninhando vários blocos de if/else uns dentro dos outros.
Seu entendimento sobre o controle de fluxos em laços de repetição está excelente. Parabéns pelo projeto!
Espero que possa ter lhe ajudado!