No exemplo apresentado, o problema ocorre porque o laço while nunca altera a condição que controla sua execução. A variável contador é inicializada com valor 0 e permanece com esse valor durante todo o processo. Como a condição contador < 10 continua verdadeira, o programa entra em um loop infinito e nunca encerra sua execução.
Código com problema:
contador = 0
while contador < 10:
print("Processando dados...")
Para corrigir, é necessário atualizar o valor do contador dentro do laço:
contador = 0
while contador < 10:
print("Processando dados...")
contador += 1
Para compreender melhor o conceito, adaptei o exemplo para um contexto educacional utilizando dados da Avaliação Formativa do Aprendiz (AFA).
Imagine que a escola deseja continuar propondo intervenções enquanto existirem alunos com registros recorrentes de conversa excessiva.
alunos_com_conversa_excessiva = [
"Anik Azevedo",
"Aluno 2",
"Aluno 3"
]
while len(alunos_com_conversa_excessiva) > 0:
print("Ainda existem alunos com conversa excessiva.")
print("Propondo intervenções pedagógicas...")
for aluno in alunos_com_conversa_excessiva:
print(f"Intervenção para {aluno}:")
print("- conversa individual")
print("- meta semanal de autorregulação")
print("- monitoramento pela coordenação")
break
Nesse exemplo, o while representa a condição:
"Enquanto houver alunos com conversa excessiva, continue realizando intervenções."
Já o for percorre cada aluno que apresenta a necessidade de acompanhamento.
Com essa atividade, compreendi que o loop infinito acontece quando a condição de parada nunca é modificada. Também percebi que, em projetos educacionais, o while pode ser utilizado para monitorar problemas ao longo do tempo, enquanto o for é utilizado para percorrer listas de alunos, turmas ou registros e realizar análises individuais.