Estou executando o código abaixo, entretanto, mesmo quando acerto ele continua pedindo um novo chute, por que isso está acontecendo?
Estou executando o código abaixo, entretanto, mesmo quando acerto ele continua pedindo um novo chute, por que isso está acontecendo?
Oi Breno,
Testei e funcionou sem problema 👍
Você pode estar tendo um problema de tipos diferentes.
A função prompt()
sempre retorna uma string, mesmo que o usuário digite um número.
A comparação numeroSecreto != tentativa
no while
está comparando um número com uma string, o que pode estar causando o loop infinito. 🤔
Para corrigir isso, você precisa converter a string retornada pelo prompt()
para um número usando a função parseInt()
ou parseFloat()
.
Veja o exemplo:
let numeroSecreto = 4;
let tentativa;
while (numeroSecreto != tentativa) {
tentativa = parseInt(prompt("Escolha um número entre 1 e 10"));
if (numeroSecreto == tentativa) {
alert(`Você descobriu o número secreto ${numeroSecreto}`);
} else if (tentativa < numeroSecreto) {
alert(`O número secreto é maior que ${tentativa}`);
} else {
alert(`O número secreto é menor que ${tentativa}`);
}
}
Para saber mais: Conversão de string para número em JavaScript. Este link da documentação da Mozilla explica como usar o parseInt()
para converter strings em números.
Continue praticando e explorando novas possibilidades! 💪
P.S. Use a opção do menu </>
para colocar o código 😎
o meu deu um problema tive que converter o valor digitado no prompt para numero se não ficava sempre pedindo o para o usuario digitar um numero o jogo nunca acabava chute = parseInt(prompt("Digite um Número de 1 a 10")); // Converte o valor para número