05. Laços de Repetição (while)#
O operador while#
Se quiséssemos repetir a pergunta mais 100 vezes, poderíamos continuar copiando e colando o código. Um problema é que o código ficaria cada vez mais difícil de manter. Imagine que você decidiu aceitar a resposta 'não tenho' ao invés de somente 'não'. Agora você teria pelo menos 100 linhas diferentes para alterar no seu código.
Ok, é chato e pode dar bastante trabalho, mas ainda dá para fazer. Agora, o que precisaríamos fazer para que o programa continuasse perguntando enquanto o usuário não respondesse "não". Se copiássemos o mesmo bloco de código 1000 vezes ele poderia responder 'sim' nas 1001 primeiras vezes. Se fizéssemos o mesmo 100000 de vezes, o usuário ainda poderia (por mais que improvável) responder 'sim' nas 100001 primeiras vezes. Assim, vemos que é necessário utilizar alguma outra estrutura, no caso, o operador while. Vamos começar relembrando o que o if faz:
if executa o bloco se a condição for verdadeiraO while funciona de maneira similar, mas ao final da execução do bloco, a condição é reavaliada e, caso seja verdadeira, o bloco é executado novamente enquanto a condição for verdadeira:
while executa o bloco enquanto a condição for verdadeiraExercise 1
Uma possível solução é apresentada a seguir:
tem_duvidas = True
while tem_duvidas:
resposta_do_aluno = input('Você está com dúvidas? ')
if resposta_do_aluno == 'não':
print('Até a próxima')
tem_duvidas = False
else:
print('Pratique mais')
Exercise 2
Answer
O while só termina quando a condição é False. Para isso, após o usuário digitar não, a variável tem_duvidas recebe o valor False, a condição é verificada mais uma última vez e então o bloco é pulado.
Exercise 3
Exercise 4
Alguns padrões de uso do while#
Vamos agora ver alguns padrões de uso do operador while Clique aqui.