Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

2
respostas

O que é um loop infinito?

contador = 0

while contador < 10:
    print("Processando dados...")
    contador += 1 

O problema do código está em não incrementar o contador a cada iteração do while, isto faz com que o programa rode infinitamente, pois a condição nunca deixará de ser verdadeira.

2 respostas

Olá, Giovanni. Como vai?

Sua explicação sobre o conceito de loop infinito está corretíssima e muito clara! É exatamente isso que acontece quando esquecemos de atualizar a variável de controle dentro de um laço while: a condição de parada nunca é atingida e o programa fica travado executando o mesmo bloco de código para sempre.

Apenas um pequeno detalhe construtivo sobre o trecho de código que você compartilhou: da forma como ele está escrito na sua postagem, o loop não será infinito. Isso ocorre porque você incluiu a linha contador += 1, que faz o incremento corretamente a cada iteração. Dessa forma, após 10 execuções, a condição contador < 10 se tornará falsa e o laço será encerrado com sucesso.

Para ilustrar exatamente o problema que você descreveu tão bem no texto, o código gerador do loop infinito seria sem aquela última linha, ficando assim:

contador = 0

while contador < 10:
    print("Processando dados...")
    # Faltou o incremento aqui! O contador será sempre 0, e 0 sempre será menor que 10.
  • Dica de boas práticas: Como você está estudando laços de repetição, uma ótima forma de evitar loops infinitos acidentais é utilizar o laço for sempre que você souber antecipadamente a quantidade exata de vezes que precisa repetir uma ação. O for gerencia o controle da variável automaticamente por baixo dos panos.
  • Veja como o seu código ficaria mais limpo e seguro usando o for com a função range():
for contador in range(10):
    print("Processando dados...")

Continue com esse excelente ritmo de estudos e compartilhando suas reflexões aqui no fórum, pois isso ajuda muito a fixar o aprendizado.

Espero que possa ter lhe ajudado!

Muito obrigado pela dica, não havia pensado por esse lado!