• Python
  • 05. Laços de Repetição (while)
  • O operador while

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:

O if executa o bloco se a condição for verdadeira

O 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:

O while executa o bloco enquanto a condição for verdadeira

Exercise 1

Modifique o programa do código a seguir para que ele continue perguntando se o usuário tem dúvidas enquanto ele responder qualquer coisa diferente de 'não'.

tem_duvidas = True

if 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')

Dica: basta trocar um dos ifs por um while.

Acessar exercício

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

Considere o programa acima. Quantas vezes a linha do while será executada se o usuário digitar sim, sim, sim, não?

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

Faça o exercício Descobrindo a senha.

Acessar exercício

Exercise 4

Agora podemos voltar para o nosso jogo. Modifique o seu programa para que o jogador possa continuar chutando um valor enquanto o usuário não acertar. Em outras palavras, modifique o programa para que o jogador tenha tentativas infinitas.

Acessar exercício

Alguns padrões de uso do while#

Vamos agora ver alguns padrões de uso do operador while 👉 Clique aqui.