1
resposta

09 Entendendo o uso do break

Segue resolução

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

#Livro que o José está procurando
livro_desejado = "O Hobbit"

#Percorrendo a lista de livros
for livro in livros:
if livro == livro_desejado:
print(f"Livro encontrado: {livro}")
break # Interrompe o laço imediatamente aqui

1 resposta

Olá, Deivide. Como vai?

Sua resolução está impecável! Você aplicou perfeitamente o conceito da instrução break. No seu código, assim que o Python encontra o livro "O Hobbit", o break entra em ação e interrompe o laço for na mesma hora.

Essa é uma das maiores boas práticas de otimização de código. Sem o break, o programa continuaria varrendo a lista e testando o "Orgulho e Preconceito" sem nenhuma necessidade, já que o objetivo principal (encontrar o livro desejado) já havia sido atingido. Em listas com milhões de registros, essa pequena linha economiza muita memória e tempo de processamento.

Para complementar o seu estudo sobre controle de fluxos e agregar ainda mais valor, vale a pena conhecer um recurso nativo do Python que pouca gente usa, mas que se encaixa perfeitamente nesse seu exemplo: a estrutura for-else.


O que é e como funciona o for-else?

No Python, você pode alinhar uma cláusula else diretamente no mesmo nível de indentação do laço for.

O bloco de código dentro desse else possui uma regra muito específica: ele só será executado se o laço for rodar até o final de toda a lista sem ter sido interrompido por nenhum break.

Se o seu código encontrar o livro e disparar o break, o else é completamente ignorado. Isso é excelente para exibir uma mensagem caso o livro não esteja cadastrado. Veja como o seu código poderia ser expandido:

livros = ["1984", "Dom Casmurro", "O Pequeno Príncipe", "O Hobbit", "Orgulho e Preconceito"]
livro_desejado = "A Culpa é das Estrelas" # Um livro que não está na lista

for livro in livros:
    if livro == livro_desejado:
        print(f"Livro encontrado: {livro}")
        break
else:
    # Este bloco SÓ executa se o laço varrer a lista toda e não achar nada
    print(f"Desculpe, o livro '{livro_desejado}' não foi encontrado no catálogo.")

Sem a estrutura do for-else, você precisaria criar uma variável de controle do tipo booleana (como encontrado = False) antes do laço para conseguir tratar o caso de o livro não existir. O Python resolve isso para você de forma nativa e elegante!

Parabéns por mais uma ótima resolução postada no fórum. Seus códigos demonstram uma evolução fantástica.

Espero que possa ter lhe ajudado!