Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resolução com while.

Olá, tudo bem? Olhei a correção e os exercícios de todos os alunos, todos colocaram "for" e eu usei "while"
Queria saber o motivo do uso do while estar errado nesse exemplo, pois o output é o mesmo...
input:

numero = 10
while numero >= 1:
    if numero % 2 == 0:
        print(f'Faltam apenas: {numero} segundos - Não perca essa oportunidade!')
    if numero % 2 == 1:
        print(f'A contagem continua: {numero} segundos restantes.')
    numero -= 1
print('Aproveite a promoção agora!')

Output:

Faltam apenas: 10 segundos - Não perca essa oportunidade!
A contagem continua: 9 segundos restantes.
Faltam apenas: 8 segundos - Não perca essa oportunidade!
A contagem continua: 7 segundos restantes.
Faltam apenas: 6 segundos - Não perca essa oportunidade!
A contagem continua: 5 segundos restantes.
Faltam apenas: 4 segundos - Não perca essa oportunidade!
A contagem continua: 3 segundos restantes.
Faltam apenas: 2 segundos - Não perca essa oportunidade!
A contagem continua: 1 segundos restantes.
Aproveite a promoção agora!

Obrigado!

1 resposta

Oi, Matheus. Tudo bem com você?

Obrigado por compartilhar sua dúvida e também sua implementação. Analisei o código e ele está correto para o resultado esperado. O laço while produz a mesma saída solicitada pela atividade, realizando a contagem regressiva, verificando se o número é par ou ímpar e exibindo a mensagem final no momento adequado.

O motivo de a atividade solicitar especificamente um for está relacionado ao objetivo de aprendizagem do capítulo. Em Python, quando já sabemos previamente quantas iterações serão executadas, como uma contagem de 10 até 1, o for costuma ser a estrutura mais indicada por ser mais concisa e expressar melhor essa intenção. Já o while é geralmente utilizado quando a repetição depende de uma condição que pode variar durante a execução e não necessariamente de uma quantidade conhecida de repetições.

Como exemplo, sua solução com while seria uma boa escolha caso a contagem inicial fosse definida pelo usuário, podendo começar em qualquer valor. Já para uma sequência fixa, o for é a opção mais utilizada.

Na sua opinião, em quais situações do dia a dia da programação você acredita que o while seria mais adequado do que o for?

Parabéns pela iniciativa de comparar as duas abordagens e questionar a escolha da estrutura. Continue compartilhando suas dúvidas e soluções. O fórum está à disposição para ajudar sempre que precisar.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!