while e repetição por condição
Objetivo da aula
Usar while quando a continuação depende de uma condição.
Regra desta aula: vamos assumir que você nunca viu este assunto antes. Nenhum termo importante será usado sem explicação e todo exemplo deve ser entendido linha por linha, não apenas copiado.
Começando do zero
while significa “enquanto”. O Python verifica uma condição; se ela for verdadeira, executa o bloco e volta a testar. Isso continua até a condição ficar falsa. É ideal para situações em que a quantidade de repetições depende do que acontece durante a execução.
Uma imagem mental para entender
Imagine encher um balde até atingir 10 litros. Você não precisa saber quantas conchas serão usadas se a quantidade de cada concha varia. A regra é “enquanto tiver menos de 10 litros, continue adicionando”. while representa esse tipo de repetição condicionada.
Conceitos essenciais, sem pular etapas
Inicialização
Antes do laço, crie o estado que será testado, como contador = 1.
Condição
Precisa ser reavaliada a cada volta. Ela deve expressar claramente quando o laço continua.
Atualização
Dentro do laço, alguma ação normalmente aproxima o estado do término.
Laço infinito
Se a condição nunca se tornar falsa, o programa continua repetindo. Isso pode consumir CPU e impedir o fluxo de avançar.
Sentinela
Às vezes um valor especial indica o fim, como a palavra "sair". Esse padrão é comum em menus e leitura de entradas.
Modelo mental
INICIALIZAÇÃO → CONDIÇÃO → CORPO → ATUALIZAÇÃO → CONDIÇÃO NOVAMENTE
Exemplo 1 — primeiro veja o programa inteiro
contador = 1
while contador <= 5:
print("Volta", contador)
contador = contador + 1
print("Terminou com contador =", contador)
Agora vamos ler linha por linha
- O estado inicial é 1.
- Enquanto o contador for menor ou igual a 5, o bloco executa.
- A atualização soma 1 a cada volta.
- Depois da volta em que o contador vale 5, ele é atualizado para 6; o teste
6 <= 5é falso e o laço termina.
Saída esperada
Volta 1
Volta 2
Volta 3
Volta 4
Volta 5
Terminou com contador = 6
Exemplo 2 — o mesmo conceito em outra situação
comando = ""
while comando != "sair":
comando = input("Digite sair para encerrar: ").strip().lower()
print("Programa encerrado")
Neste padrão, a pessoa controla o término. strip() remove espaços nas extremidades e lower() normaliza letras para minúsculas, tornando a comparação mais tolerante.
Experimento guiado
Não pule esta parte. Programação só começa a fazer sentido quando você prevê um resultado, executa e compara a previsão com o que realmente aconteceu.
- Faça uma tabela com o valor de
contadorantes e depois de cada volta. - Troque o limite 5 por 3 e preveja a quantidade de iterações.
- Teste o menu digitando
SAIR,saire espaços ao redor. - Pergunte sempre: “qual linha faz esta condição caminhar para falso?”.
Mini desafio
Crie uma contagem regressiva de 5 até 1 usando while, depois mostre “Vai!”.
Solução comentada
numero = 5
while numero >= 1:
print(numero)
numero = numero - 1
print("Vai!")
Depois de executar a solução, altere pelo menos um valor e explique por que o novo resultado mudou. Se você só copiou e não consegue explicar cada linha, refaça o desafio em uma versão menor.
Erros comuns e por que acontecem
- Esquecer a atualização do estado e criar laço infinito.
- Atualizar na direção errada, como aumentar um contador quando a condição exige que ele diminua.
- Usar
whilepara percorrer uma sequência simples quandoforseria mais claro. - Não normalizar uma sentinela textual e obrigar o usuário a digitar exatamente uma combinação de maiúsculas/minúsculas.
Cheque se você realmente entendeu
Quando a condição do while é testada?
Resposta: Antes de cada iteração.
Se ela já começar falsa, quantas vezes o corpo executa?
Resposta: Zero.
O que precisa existir para um laço terminar de forma previsível?
Resposta: Algum progresso ou evento que torne a condição falsa.
Resumo em linguagem simples
Nesta aula, o ponto central foi while e repetição por condição. Tente explicar o modelo INICIALIZAÇÃO → CONDIÇÃO → CORPO → ATUALIZAÇÃO → CONDIÇÃO NOVAMENTE sem olhar a tela. Depois, escreva um exemplo próprio menor que os apresentados. Esse exercício de explicação é parte do aprendizado, não um extra.
Conexão com a próxima aula
Na próxima aula, for, range e sequências, vamos aproveitar exatamente o que foi construído aqui. Você não precisa memorizar tudo; precisa conseguir reconhecer o conceito e reconstruí-lo com raciocínio e testes.