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.
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: Como funciona o while: anatomia e passo a passo.
Os objetivos desta aula. 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.
Veja o essencial, parte por parte.
As três peças de todo while. Todo while tem três peças: valor inicial da variável, condição de continuação e atualização dentro do bloco.
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.
Variando o passo: crescer, decrescer, pular. A atualização não precisa ser sempre somar 1.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
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.
| Volta | Valor de contador no teste | contador <= 3? | O que acontece |
|---|---|---|---|
| 1 | 1 | Verdadeiro | Mostra Volta número 1 e contador vira 2 |
| 2 | 2 | Verdadeiro | Mostra Volta número 2 e contador vira 3 |
| 3 | 3 | Verdadeiro | Mostra Volta número 3 e contador vira 4 |
| 4 | 4 | Falso | Bloco 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.