Black November

ATÉ 50% OFF

TÁ ACABANDO!

0 dias

0 horas

0 min

0 seg

1
resposta

[Dúvida] Desafio 03 e seus parseInt

Pessoal, eu resolvi o desafio 03 de Loop While, mas eu vi alguns jeitos diferentes de resolver aqui no forum, e gostaria muito que vcs me ajudaseem, primeiro meu código:

// desafio 1 Crie um contador que comece em 1 e vá até 10 usando um loop while. Mostre cada número.
let contadorSoma = 1;
while (contadorSoma <=10){
    alert(contadorSoma);
    contadorSoma++
}
 
//desafio 2 Crie um contador que começa em 10 e vá até 0 usando um loop while. Mostre cada número.
let contadorSubtracao = 10;
while (contadorSubtracao >=0){
    alert (contadorSubtracao);
    contadorSubtracao--
}

//desafio 3 Crie um programa de contagem regressiva. Peça um número e conte deste número até 0, usando um loop while no console do navegador.
let numeroRegressiva = prompt('Escolha um número de 1 a 10 para iniciar a contagem regressiva');
while (numeroRegressiva >=0){
    alert (numeroRegressiva);
    numeroRegressiva--
}

//desafio 4 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.
let numeroProgressiva = prompt('Escolha um número de 1 a 10 para iniciar a contagem');
while (numeroProgressiva >=0){
    alert (numeroProgressiva);
    numeroProgressiva++
}

Segundo, eu vi o pessoal usar um parseInt, como eu uso, pq nao usar um prompt normal?

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Ola amigo .
Tudo bem?
O valor retornado pela função prompt() é sempre uma string.
No entanto, o JavaScript é capaz de fazer a conversão implícita de tipos (tipo coercion) quando é necessário realizar operações numéricas.
No seu caso, ao fazer a comparação numeroRegressiva >= 0, o JavaScript converte automaticamente a string recebida do prompt() para um número para que a comparação funcione. Isso é possível devido à "coerção implícita" de tipos do JavaScript, que transforma a string que representa um número (como "5") em um valor numérico (como 5) quando você faz uma operação matemática ou uma comparação.
Isso também ocorre com variaveis que se tornam globais quando esquecemos de adicionar let ou const antes do nome da variavel.
Porém, isso não é uma boa prática, porque a conversão implícita pode ser imprevisível em alguns casos.
É mais seguro garantir que a variável seja de fato um número antes de usá-la em cálculos ou comparações.
Então, o código abaixo é mais seguro:

let numeroRegressiva = parseInt(prompt('Escolha um número de 1 a 10 para iniciar a contagem regressiva'));
while (numeroRegressiva >= 0) {
    alert(numeroRegressiva);
    numeroRegressiva--;
}

Aqui, o parseInt explicitamente converte o valor de numeroRegressiva para um número inteiro, garantindo que a variável seja do tipo correto.
Qualquer duvida comente ai.
Bons estudos.