1
resposta

Entendendo o uso do break

José está desenvolvendo uma funcionalidade no sistema do Buscante para interromper a busca assim que um livro específico é encontrado. A lista de livros já cadastrados no sistema é a seguinte:

livros = ["1984", "Dom Casmurro", "O Pequeno Príncipe", "O Hobbit", "Orgulho e Preconceito"]

Ajude José a criar um programa que percorra a lista e exiba a mensagem "Livro encontrado: <nome do livro>" assim que o livro "O Hobbit" for encontrado. Após encontrar o livro, o programa deve parar imediatamente a busca, sem verificar os livros restantes.

livros = ["1984", "Dom Casmurro", "O Pequeno Príncipe", "O Hobbit", "Orgulho e Preconceito"]

for livro in livros:
    if livro == "O Hobbit":
        print(f'Livro encontrado: {livro}')
        break
        
    Livro encontrado: O Hobbit
1 resposta

Olá, Andressa. Como vai?

Seu código está absolutamente perfeito! Você utilizou a estrutura do laço for de maneira corretíssima para percorrer a lista de strings e aplicou o comando break exatamente onde ele deveria estar: logo após a condição ser atendida e a mensagem ser exibida.

O break é uma palavra-chave fundamental no controle de fluxos em estruturas de repetição. A grande vantagem de utilizá-lo, como você bem demonstrou, é a eficiência de processamento. Sem o break, o Python continuaria lendo a lista e checando o item "Orgulho e Preconceito" sem necessidade, gastando memória e tempo de execução à toa.

Para agregar ainda mais valor aos seus estudos sobre o controle de laços, gostaria de compartilhar uma boa prática e um complemento sobre o comportamento do programa:

1. Melhorando a Experiência do Usuário (Feedback Visual)
Em sistemas reais de busca, quando procuramos por algo e o sistema fica em silêncio até achar (ou se não achar nada), o usuário pode pensar que o programa travou. Uma boa prática é mostrar o progresso da busca enquanto o livro não é encontrado:

livros = ["1984", "Dom Casmurro", "O Pequeno Príncipe", "O Hobbit", "Orgulho e Preconceito"]

for livro in livros:
    print(f"Buscando no estoque... Analisando o livro: {livro}")
    if livro == "O Hobbit":
        print(f'\n[SUCESSO] Livro encontrado: {livro}! Interrompendo busca.')
        break

Ao rodar essa versão, você verá claramente no terminal que o programa analisa "1984", "Dom Casmurro", "O Pequeno Príncipe" e "O Hobbit", parando imediatamente antes de chegar em "Orgulho e Preconceito".

2. O que acontece se o livro não estiver na lista?
Uma excelente evolução para esse código seria tratar o cenário onde o livro buscado não existe no estoque. Lembra que em um tópico anterior vimos que o for aceita uma cláusula else no Python? Ela brilha muito junto com o break!

Se o laço terminar de rodar a lista inteira sem ter sido interrompido por um break, o bloco else é executado:

livros = ["1984", "Dom Casmurro", "O Pequeno Príncipe", "O Hobbit", "Orgulho e Preconceito"]
busca = "O Senhor dos Anéis" # Um livro que não está na lista

for livro in livros:
    if livro == search:
        print(f'Livro encontrado: {livro}')
        break
else:
    # Este bloco só executa se o loop percorrer TUDO sem encontrar o break
    print(f'Desculpe, o livro "{busca}" não foi encontrado no sistema do Buscante.')

Você está dominando muito bem os conceitos de lógica e controle de laços em Python. Continue com esse ritmo excelente de estudos!

Espero que possa ter lhe ajudado!