Módulo 9 - Repetir ENQUANTO for preciso

O laço infinito: o vilão que congela programas

9 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 02/07/2026

O que você vai aprender

  • Explicar o que é um laço infinito e por que ele congela o programa.
  • Identificar as causas: falta de atualização, atualização na direção errada e condição sempre verdadeira.
  • Aplicar os antídotos antes de executar o laço.
  • Separar o laço infinito acidental do laço sem fim proposital.

Preso na porta giratória

Lembra da terceira exigência do algoritmo, lá do módulo 1? Fim garantido. O laço infinito é exatamente a quebra dessa promessa. A imagem é a de uma porta giratória com o sensor quebrado: a pessoa entra esperando sair do outro lado, mas a porta nunca abre a passagem e ela roda, roda, roda. O computador preso num laço assim não reclama nem desiste, porque a máquina é literal: cada teste da condição responde verdadeiro, e verdadeiro manda dar mais uma volta. Para ela, está tudo certo. Para quem espera a resposta, o programa congelou.

Fluxograma de um laço cuja seta de retorno forma um circuito fechado destacado em vermelho: o losango da condição sempre responde verdadeiro e a saída pelo falso, desenhada esmaecida, nunca é usada. Um símbolo de alerta indica que o programa não chega ao fim.
O circuito sem saída: quando o falso nunca chega, a seta de retorno vira prisão.

Os sintomas do lado de fora você provavelmente já viu: a janela que fica branca com o aviso “não está respondendo”, a aba do navegador que congela, a ventoinha do notebook acelerando como turbina. Por dentro, o processador está executando o bloco do laço milhões de vezes por segundo, ocupado demais para atender qualquer outra coisa. Nada explodiu e nada vai explodir: fechando o programa (ou a aba), a prisão desmonta. Mas o mau funcionamento é real, e a boa notícia é que ele é 100% evitável com os hábitos desta aula.

Como nasce um laço infinito

O laço saudável tem um motor de saída: alguma instrução do bloco altera a variável da condição, volta após volta, até o teste responder falso. O laço infinito nasce quando esse motor falha, e são três as falhas clássicas. A primeira: a atualização não existe (você esqueceu o contador <- contador + 1). A segunda: a atualização existe, mas anda na direção errada ou devolve a variável ao ponto de partida, e a condição nunca se aproxima do falso. A terceira: a condição foi escrita de um jeito que nenhum valor torna falso, como esperar que um contador crescente fique menor que o início.

🎮 Jogo da aula

Cace o laço infinito

Este programa deveria somar os números de 1 a 5 e mostrar 15, mas trava para sempre. Toque na linha culpada.

Repare no tamanho da causa: uma linha, quase idêntica à correta. É assim que os laços infinitos aparecem no mundo real, não como erros gritantes, mas como deslizes de digitação e de raciocínio que passam batido na leitura corrida. Por isso o hábito que resolve não é “prestar mais atenção”, promessa que ninguém cumpre, e sim um ritual mecânico de conferência antes de executar. Esse ritual são os antídotos da próxima seção.

Os antídotos: quatro perguntas antes de rodar

  1. Antídoto 1, a atualização existe? Aponte a variável usada na condição e confirme que alguma linha DENTRO do bloco a altera.
  2. Antídoto 2, a direção está certa? A alteração deve aproximar a condição do falso: se o teste é contador <= 5, o contador precisa CRESCER.
  3. Antídoto 3, teste de mesa curto: simule 2 ou 3 voltas no papel anotando o valor da variável. Se ele não se mexer rumo à saída, você achou o vilão sem travar nada.
  4. Antídoto 4, limite de segurança: em programas que dependem de fatores externos (a resposta certa do usuário, por exemplo), acrescente um teto de tentativas na condição, como o cartão que bloqueia após 3 senhas erradas.

Para fechar, uma distinção que evita confusão: existe repetição sem fim DE PROPÓSITO, e ela não é vilã. O semáforo do módulo 1 alterna as cores para sempre; o servidor que entrega este site atende pedidos num laço eterno; o seu celular verifica toques na tela num ciclo que só termina quando o aparelho desliga. A diferença está no projeto: esses laços foram desenhados para durar, com pausas e saídas planejadas, e não prendem ninguém que espera resposta. O laço infinito problema é o ACIDENTAL: aquele que deveria terminar e não termina. Os antídotos existem para ele.

Teste rápido

Um ENQUANTO está rodando para sempre. Qual é a PRIMEIRA verificação a fazer?

Perguntas frequentes

O que é um laço infinito, exatamente?
É um laço cuja condição nunca fica falsa, então o bloco se repete sem parar. O programa não exibe erro: fica preso dando voltas, sem responder ao usuário, com o processador ocupado no máximo. Ele quebra a exigência de fim garantido que todo algoritmo deveria cumprir.
O computador estraga quando entra num laço infinito?
Não. O processador esquenta e a ventoinha acelera porque o trabalho é intenso, mas os sistemas modernos se protegem de calor excessivo. Fechar o programa travado (ou a aba do navegador) encerra o laço e devolve tudo ao normal. O dano é o tempo perdido e o resultado que nunca chega.
Como paro um programa preso num laço infinito?
Encerrando o programa por fora: fechar a janela ou a aba, ou usar o gerenciador de tarefas quando nem isso responde. Em ferramentas de programador, o atalho clássico do terminal é Ctrl+C, que interrompe o programa em execução. O laço não sai sozinho; alguém de fora precisa cortar a energia da porta giratória.
Existe laço infinito de propósito?
Existe, e o mundo funciona sobre eles: servidores atendendo pedidos, o semáforo alternando cores, o celular vigiando toques na tela. São ciclos projetados para durar, com pausas e condições de saída planejadas (desligar o aparelho, encerrar o serviço). O problema é só o laço que DEVERIA terminar e não termina.
Esquecer o incremento é o único jeito de criar um laço infinito?
É o mais famoso, mas há outros dois clássicos: atualizar a variável na direção errada (ou devolvê-la ao valor inicial, como no jogo desta aula) e escrever uma condição que nenhum valor torna falsa. Nos três casos o diagnóstico é o mesmo: seguir a variável da condição e verificar se ela caminha para o falso.
Dá para detectar um laço infinito antes de executar o programa?
Na maioria dos casos do dia a dia, sim: o teste de mesa com 2 ou 3 voltas revela se a variável da condição está andando rumo à saída. O módulo 13 transforma essa conferência em técnica completa, com tabela de valores linha a linha. O hábito de 30 segundos no papel economiza minutos de programa travado.

Fontes

Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.