2
respostas

[Dúvida] Como automatizar a contagem

let contador= prompt ('Escolha um número para a contagem regressiva!');
alert (`O número inicial é ${contador}`)
while (contador>0) {
    contador--; 
    alert(`O número é ${contador}`);
}
alert('Fim!')

Dá forma que eu fiz, tenho que clicar enter para mostrar número a número. Como posso fazer para que o programa faça isso sozinho?

2 respostas

Olá, Vicente!

Para automatizar a contagem sem precisar pressionar Enter a cada número, você pode utilizar a função setTimeout do JavaScript. Essa função permite que você defina um intervalo de tempo para executar uma determinada ação.

No seu código, você pode substituir o alert por setTimeout para criar um intervalo entre a exibição de cada número. Veja como ficaria:

let contador = prompt('Escolha um número para a contagem regressiva!');
alert(`O número inicial é ${contador}`);

function exibirNumero() {
  if (contador > 0) {
    contador--;
    alert(`O número é ${contador}`);
    setTimeout(exibirNumero, 1000); // 1000 representa 1 segundo de intervalo entre cada número
  } else {
    alert('Fim!');
  }
}

exibirNumero();

Nesse exemplo, a função exibirNumero é chamada a cada segundo (1000 milissegundos) até que o contador chegue a zero. Assim, cada número será exibido automaticamente, sem a necessidade de pressionar Enter.

Bons estudos!

Utilizei seu código no Vs Code, mas não funcionou automaticamente. Continuou precisando dar enter. Notei que o tempo sofreu alteração em relação a velocidade que o novo alerta aparece, mas continua parado em qualquer número se eu não der enter para continuar.


<meta charset="UTF-8">
<script>
let contador = prompt('Escolha um número para a contagem regressiva!');
alert(`O número inicial é ${contador}`);

function exibirNumero() {
  if (contador > 0) {
    contador--;
    alert(`O número é ${contador}`);
    setTimeout(exibirNumero, 500); // 1000 representa 1 segundo de intervalo entre cada número
  } else {
    alert('Fim!');
  }
}

exibirNumero();
</script>