Módulo 8 - Repetições com while

Como funciona o while: anatomia e passo a passo

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

O que você vai aprender

  • Identificar as três peças de um while: início, condição e atualização.
  • Entender que a condição é testada ANTES de cada volta, não depois.
  • Acompanhar o valor da variável de controle iteração por iteração.
  • Prever quantas voltas um loop dá antes de rodar o código.

As três peças de todo while

Pegue o loop da aula passada e olhe para ele como um mecânico olha para um motor. São três peças trabalhando juntas, e cada uma tem endereço fixo. Antes do while, a variável de controle nasce com um valor inicial. Na linha do while, a condição decide se o bloco roda mais uma vez. E dentro do bloco, a última linha atualiza a variável, empurrando a condição em direção ao falso.

contador = 1               # 1) valor inicial da variável de controle
while contador <= 3:       # 2) condição: testada ANTES de cada volta
    print("Volta número", contador)
    contador = contador + 1  # 3) atualização: empurra a condição para o falso
print("Fim do loop")

As três peças numeradas. Tire qualquer uma delas e o loop quebra de um jeito diferente.

A linha contador = contador + 1 costuma assustar na primeira leitura, e a confusão é legítima: em matemática, essa igualdade seria absurda. Em Python, o sinal de igual não compara, atribui. A linha diz: calcule contador + 1 usando o valor atual e guarde o resultado de volta na variável. Se contador valia 1, passa a valer 2. É o mesmo conceito de atribuição do módulo 4, agora usado para fazer uma variável evoluir a cada volta.

O filme do loop: três voltas em câmera lenta

A melhor forma de entender um loop é rodá-lo na cabeça antes de rodar na máquina, anotando o valor da variável a cada volta. Programadores chamam isso de teste de mesa, e é uma técnica que você vai usar a carreira inteira, inclusive para caçar bugs. Vamos filmar o loop do exemplo acima, quadro a quadro.

VoltaValor de contador no testecontador <= 3?O que acontece
11VerdadeiroMostra Volta número 1 e contador vira 2
22VerdadeiroMostra Volta número 2 e contador vira 3
33VerdadeiroMostra Volta número 3 e contador vira 4
44FalsoBloco não executa; o programa segue para o print final

Teste de mesa do loop: o valor de contador a cada volta. Na quarta tentativa, a condição falha e o loop morre.

Repare no detalhe da última linha da tabela: o teste da volta 4 acontece, mas o bloco não. O while sempre verifica a condição primeiro e só depois decide executar. Isso significa que o loop testou a condição 4 vezes para executar o bloco 3. E significa outra coisa importante: se a condição já nascer falsa, o bloco não roda nenhuma vez. Um while contador <= 3 com contador começando em 10 pula direto para o print final, sem mostrar nada.

contador = 10
while contador <= 3:
    print("Isto nunca aparece na tela")
print("O programa pulou o loop inteiro")

Condição falsa desde o início: o bloco é ignorado por completo. Nenhum erro, nenhuma volta.

Esse comportamento tem nome técnico: o while é um loop com teste na entrada. Ele nunca promete executar o bloco; promete só testar antes. Guarde isso, porque é uma fonte clássica de surpresa: o iniciante espera pelo menos uma volta e o loop, corretamente, não dá nenhuma.

Variando o passo: crescer, decrescer, pular

A atualização não precisa ser sempre somar 1. A variável de controle pode crescer de 2 em 2, de 10 em 10, ou andar para trás. Uma contagem regressiva de foguete é um while que subtrai: começa em 10 e desce até o zero. O que não muda é a exigência estrutural: a atualização precisa levar a condição, mais cedo ou mais tarde, ao falso.

segundos = 5
while segundos > 0:
    print(segundos, "...")
    segundos = segundos - 1
print("Decolar!")

Contagem regressiva: a variável desce de 5 até 0. Quando segundos chega a 0, a condição segundos > 0 falha.

Antes de seguir para a próxima aula, faça o exercício que separa quem leu de quem aprendeu: pegue o loop da contagem regressiva e monte o teste de mesa no papel, volta a volta, como a tabela desta aula. Depois rode no Playground e confira. Se a sua tabela bateu com a tela, você acabou de provar que consegue prever um loop sem executá-lo. Essa habilidade vale ouro na aula que vem, sobre o loop que nunca termina.

Teste rápido

Num while, quando a condição é testada?

Perguntas frequentes

Por que contador = contador + 1 não dá erro, se em matemática isso é impossível?
Porque o sinal de igual em Python atribui, não compara. A linha calcula o lado direito com o valor atual da variável e guarda o resultado de volta nela. Comparação de igualdade usa dois sinais (==), como você viu no módulo 6.
Existe um jeito mais curto de escrever contador = contador + 1?
Existe: contador += 1 faz exatamente a mesma coisa, e você vai vê-lo em muito código por aí. Neste curso começamos pela forma longa porque ela mostra a mecânica por inteiro. Adote a curta quando a longa já estiver automática.
O que acontece se a condição do while já for falsa na primeira vez?
O bloco não executa nenhuma vez e o programa segue direto para a linha depois do loop. Não é erro, é o comportamento correto de um loop com teste na entrada. Se o seu programa precisa de pelo menos uma execução, reveja o valor inicial da variável.
A variável de controle precisa se chamar contador?
Não. O nome é livre, como o de qualquer variável: segundos, tentativas, saldo, vezes. A boa prática do módulo 4 continua valendo: escolha um nome que descreva o que a variável representa, porque o while fica muito mais legível.
O que é o teste de mesa que a aula citou?
É simular o programa no papel: uma tabela com uma linha por volta, anotando o valor de cada variável e o resultado da condição. Parece coisa de iniciante, mas programadores experientes fazem teste de mesa até hoje para entender código alheio e caçar bugs.
Posso usar duas condições ao mesmo tempo no while?
Pode, com os operadores lógicos do módulo 6: while saldo > 0 and tentativas < 3 repete só enquanto as duas partes forem verdadeiras. A regra do teste na entrada não muda: a expressão inteira é avaliada antes de cada volta.

Fontes

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