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!