1
resposta

[Sugestão] UTILIDADE DO CONTINUE EM LAÇOS

Prezados(as),
Boa Tarde,

Segue sugestão de solução para o exercício: Utilidade do continue em laços

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: ".

Solução:

# AREA DE VARIÁVEIS

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

# PROCESSAMENTO E SAÍDA

print("Livros disponíveis:")
for livro in livros:
    if livro["estoque"] == 0:
        continue  # Ignora livros com estoque zero
    print(f"Livro disponível: {livro['nome']}")
1 resposta

Olá, Luiz Fernando. Como vai?

Sua proposta de solução para demonstrar a utilidade do continue ficou simplesmente impecável! O código está muito limpo, bem estruturado e atende perfeitamente aos requisitos do sistema do Buscante.

Você utilizou a instrução continue exatamente onde ela brilha: no desenvolvimento de filtros e na limpeza de fluxos lógicos. Como você bem demonstrou, a grande vantagem do continue é que ele funciona como um "atalho de retorno". Assim que o Python encontra um livro com estoque zerado, ele interrompe imediatamente a execução daquela rodada específica e salta de volta para o topo do laço for, passando para o próximo livro sem executar as linhas que vêm abaixo.

Para agregar valor ao seu post e ajudar a comunidade a visualizar perfeitamente a dinâmica desse desvio de fluxo na memória do computador, preparei o desenho lógico da iteração.


O Comportamento do continue no Fluxo do Código

Para entender como a palavra-chave altera a ordem natural de leitura do interpretador, veja o mapeamento do fluxo:

  • Quando o estoque é maior que zero (ex: "1984"): A condição if livro["estoque"] == 0: resulta em Falso (False). O Python ignora o bloco do if, segue o fluxo natural de cima para baixo e executa a linha print(f"Livro disponível: {livro['nome']}").
  • Quando o estoque é igual a zero (ex: "Dom Casmurro"): A condição do if torna-se Verdadeira (True). O interpretador entra no bloco e bate na instrução continue. Nesse exato milissegundo, o Python cancela o restante da rodada (fazendo com que o print abaixo seja completamente ignorado) e força o laço a pular para o próximo item da lista.

Uma Alternativa Comum de Lógica (Sem o continue)

A sua abordagem usando o continue é excelente, pois evita o aninhamento excessivo de código (mantendo o fluxo principal mais "plano").

Contudo, para expandir as opções didáticas dos alunos que visitam o seu tópico, vale a pena mostrar como esse mesmo problema poderia ser resolvido invertendo a lógica da pergunta, usando apenas um if tradicional:

# Abordagem alternativa: focando apenas no que está disponível
for livro in livros:
    if livro["estoque"] > 0:
        print(f"Livro disponível: {livro['nome']}")

Note que o resultado final impresso na tela do usuário seria rigorosamente o mesmo. A diferença é que a sua solução com o continue é muito preferida em sistemas complexos de engenharia de software, pois permite tratar e descartar cenários de erro ou exceções (como dados vazios ou zerados) logo no início do bloco, deixando o caminho livre para a regra de negócio principal rodar com segurança no final.

Parabéns por manter o altíssimo padrão de qualidade, clareza e organização didática nas suas contribuições para o nosso fórum!

Espero que possa ter lhe ajudado!