1
resposta

[Dúvida] Contagem progressiva

Oi! Eu consegui fazer todos os desafios, mas fiquei com dúvidas no último: Crie um programa de contagem progressiva. Peça um número e conte de 0 até esse número, usando um loop while no console do navegador.

Não entendi a lógica de como colocar o while do contador sendo menor ou igual ao número máximo permite que o código conte de 0 ao número. Eu testei e vi que o código funciona, só não entendi o porquê.

Obrigada!

let numeroMaximo = prompt("Digite um número para a contagem progressiva:");
let contador = 0;

while (contador <= numeroMaximo) {
    contador++
}
1 resposta

Olá! Talvez eu tenha entendido sua dúvida errada, e, se não for isso, é só avisar que eu reformulo a explicação, mas vamos lá:

Quando você usa o operador '<=' ele vai executar o teste do while(ou seja, o teste da condição pra ver se vai entrar no loop ou sair) n+2 vezes. O n sendo o número que está em numeroMaximo. Isso porque essas duas testagens adicionais são o teste de quando contador está no limite de estar certo pro loop, que é quando contador tem o exato valor de numeroMaximo, por isso o '=' em '<=', e dá verdadeiro(já que o teste de quando o contador é 0 adiciona mais 1 teste). Já o segundo teste adicional é a testagem que dá que a condição é falsa e não executa mais o loop.

Acredito que o que tenha faltado pra atividade ficar completa e pra um entendimento melhor do que está acontecendo é um console.log(contador) antes de contador++. Isso vai te ajudar a entender como a variável se comporta a cada execução do loop antes de somar. No caso, a última impressão seria o valor em numeroMaximo, que seria o de contador que está igual. Mas depois desse console.log, existiria ainda mais um contador++, com a variável finalizando em numeroMaximo+1, o que para o loop já que não está dentro de <= numeroMaximo, e sim maior.

Acho que ficou um pouco extenso, mas tentei explicar tudo o que poderia estar causando sua dúvida. Abraço.