2
respostas

[Dúvida] Código com loop infinito

Estou executando o código abaixo, entretanto, mesmo quando acerto ele continua pedindo um novo chute, por que isso está acontecendo? Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

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