1
resposta

Utilidade do continue em laços

Ana está implementando um sistema de filtragem de livros no Buscante. A funcionalidade deve percorrer uma lista de livros e exibir o nome de cada livro disponível em estoque. No entanto, se o livro estiver esgotado, ele deve ser ignorado durante a iteraçã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}
]

Crie um programa que ajude Ana a exibir somente os livros que possuem estoque disponível, no formato: "Livro disponível: ".

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']}')

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


1 resposta

Olá, Andressa. Como vai?

Excelente resolução! O seu código está funcional, limpo e resolve perfeitamente o problema da Ana de exibir apenas os livros disponíveis no Buscante usando uma estrutura condicional if muito bem aplicada.

Contudo, repare em um detalhe muito importante no título da atividade que você realizou: "Utilidade do continue em laços".

Embora a sua solução usando o if tradicional funcione perfeitamente, o objetivo oculto desse desafio era te apresentar o comando continue, que é um recurso valiosíssimo para o controle de fluxos de repetição em códigos mais complexos.

Para enriquecer o seu projeto e expandir o seu repertório no Python, separei uma explicação de como o continue funciona por trás dos panos e como o seu código ficaria utilizando ele:


O que o comando continue faz?

Na programação, o continue serve para interromper a iteração atual de um laço e pular imediatamente para a próxima volta, ignorando todas as linhas de código que estiverem escritas embaixo dele dentro do bloco do loop.

Diferente do break (que destrói o laço e sai dele completamente), o continue apenas diz ao Python: "Essa rodada aqui não me interessa mais, pode passar para o próximo elemento da lista!".


Aplicando o continue no seu código

Para resolver o desafio da forma proposta pelo capítulo, nós invertemos a lógica: em vez de testar se o livro tem estoque, nós testamos se o livro está esgotado (estoque == 0). Se estiver esgotado, nós acionamos o continue.

Veja como fica a sintaxe:

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, pula direto para o próximo livro da lista
    if livro["estoque"] == 0:
        continue
    
    # Esta linha só é executada se o 'continue' NÃO for acionado
    print(f"Livro disponível: {livro['nome']}")

Por que usar o continue se o meu if já funcionava?

Para listas simples assim, a sua abordagem original está ótima. No entanto, o continue brilha no mercado profissional por causa de uma boa prática chamada Early Return (Retorno Precoce) ou Cláusula de Guarda.

Quando não usamos o continue, se precisássemos fazer várias validações complexas antes de imprimir o livro (verificar se o preço é válido, se o ID existe, se a categoria está ativa), o nosso código começaria a ficar cheio de if dentro de if, empurrando o código muito para a direita (o que chamamos de "código em formato de pirâmide").

Usando o continue logo no início, você elimina os casos indesejados rapidamente. Isso mantém o fluxo principal do código limpo, linear e muito mais fácil de ler e dar manutenção!

Ah, e uma dica rápida de sintaxe sobre o seu print: repare que você abriu a f-string com aspas simples (') e usou aspas simples também dentro das chaves ({livro['nome']}). Isso pode confundir o interpretador do Python em algumas versões. A boa prática é sempre alternar: se abrir por fora com aspas duplas ("), use aspas simples (') por dentro, exatamente como fiz no exemplo acima.

Parabéns por mais uma entrega de sucesso e continue explorando esses comandos de controle de fluxo!

Espero que possa ter lhe ajudado!