while e repetição por condição

Usar while quando a continuação depende de uma condição.

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.

  1. Faça uma tabela com o valor de contador antes e depois de cada volta.
  2. Troque o limite 5 por 3 e preveja a quantidade de iterações.
  3. Teste o menu digitando SAIR, sair e espaços ao redor.
  4. 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 while para percorrer uma sequência simples quando for seria 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.