O laço while
Na página anterior, for percorria valores que já estavam prontos: números de range, ou as letras de tea. while não traz uma lista feita. Antes das linhas recuadas, e antes de cada volta, inclusive a primeira, faz uma pergunta. True quer dizer que essas linhas correm. Se o número lá dentro não mudar, a pergunta não fica False e o laço não acaba.
Deixe cups em 0. A pergunta é cups < 3. O zero passa, então escreve-se 0 e cups anda um. O mesmo com 1 e depois com 2. Depois de escrever 2, cups vale 3. A pergunta falha. O 3 não está na tela. Ficou dentro de cups, e foi por isso que a pergunta falhou.
cups = 0
while cups < 3:
print(cups)
cups = cups + 1
Você vê três linhas: 0, depois 1, depois 2. Após o laço, cups guarda 3. O próprio laço não imprime esse 3, porque print só entra se a pergunta passou. Para ver o 3, escreva print na mesma altura de while, fora do laço.
Já fora do limite, as linhas recuadas não entram
Ponha cups em 3 antes de while. A primeira pergunta falha na hora. As linhas de dentro não correm nem uma vez. done está na mesma altura de while, então não faz parte do laço e é escrito uma vez, depois que while decide parar.
cups = 3
while cups < 3:
print(cups)
cups = cups + 1
print("done")
A tela só tem done. Nenhum número. print(cups) estava dentro do laço, e o laço não chegou a começar.
A linha cups = cups + 1 empurra o número até a pergunta finalmente falhar. Tire-a: cups fica em 0, cups < 3 continua True, e 0 é escrito sem parar. O programa não sai desse laço.
Depois de while são precisos dois pontos, como em for e em if. As linhas que se repetem ficam quatro espaços mais para dentro. A palavra é minúscula. While com W maiúsculo é um nome que Python não conhece, e o programa para.
A página seguinte pode cortar mais cedo
Esta página espera a própria pergunta ficar False. A seguinte faz outra coisa: cortar o laço, ou pular uma volta, antes de a pergunta falhar sozinha.
Adivinhe primeiro
- cups começa em 0 e a pergunta é cups < 3. Que números são escritos?
- Depois do laço, que número ficou em cups, mesmo sem ter sido escrito?
- cups começa em 3 e done está na altura de while. O que aparece?
- Você apaga cups = cups + 1. O laço termina?
Onde a gente erra
- Tratar o 3 final como uma linha impressa
- Esperar um número quando cups já é 3 antes de while
- Esquecer cups = cups + 1 e esperar uma última linha que não vem
- Esquecer os dois pontos depois de while
- Escrever While com maiúscula
O que levar
while pergunta antes de cada volta. As linhas recuadas só correm enquanto a resposta for True.
A partir de 0, com cups < 3, você vê 0, 1 e 2. cups fica então em 3, e esse 3 não é impresso.
Se a pergunta já é False, essas linhas nunca correm, e uma linha na altura de while corre uma vez.
Sem cups = cups + 1 a pergunta continua True e o laço não termina.
A página seguinte pode cortar o laço ou pular uma volta.
🧠 Teste Seu Conhecimento
Teste Seu Conhecimento
Desafie-se com este questionário interativo e veja o quão bem você entende o tópico
📝 Instruções
- Leia cada pergunta cuidadosamente
- Selecione a melhor resposta para cada pergunta
- Você pode refazer o quiz quantas vezes quiser
- Seu progresso será mostrado no topo