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.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: O laço infinito: o vilão que congela programas.
Os objetivos desta aula. 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.
Veja o essencial, parte por parte.
Preso na porta giratória. Laço infinito é o laço cuja condição nunca vira falsa: o programa fica preso dando voltas para sempre.
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.
Os antídotos: quatro perguntas antes de rodar. Ao revisar qualquer ENQUANTO, coloque o dedo (ou o cursor) na variável da condição.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
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.
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
- 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.
- 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.
- 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.
- 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.