Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Looping

Eu testei o código de outras pessoas e deu certo mas o meu mesmo acertando continua pedindo o número e até quando tento atualizar a página ou clicar em "cancelar" ele pede o número de novo oque tem de errado no meu código?

let numeroSecreto = 5;
let chute;

while (numeroSecreto != chute ) {
     chute = parseInt(prompt ('Digite um número de 1 a 10:'));
    
    if (numeroSecreto == chute) {
        alert ('Você acertou o número secreto');
    } else if (chute < numeroSecreto) {
        alert ('O numero secreto é maior');
    } else {
        alert ('O número secreto é menor');
    }
}
2 respostas
solução!

Oi, Vitor! Tudo bem?

O problema pode estar relacionado ao prompt retornar null quando o usuário clica em "cancelar", e parseInt(null) resultar em NaN, que nunca será igual ao numeroSecreto, o que podemos resolver adicionando uma verificação para o caso de chute ser null, e assim, interromper o loop, deixando o nosso código da seguinte forma:

let numeroSecreto = 5;
let chute;

while (numeroSecreto != chute) {
    chute = prompt('Digite um número de 1 a 10:');

    // Verifica se o usuário clicou em "cancelar"
    if (chute === null) {
        alert('Jogo encerrado.');
        break; // Sai do loop
    }

    chute = parseInt(chute);

    if (numeroSecreto == chute) {
        alert('Você acertou o número secreto');
    } else if (chute < numeroSecreto) {
        alert('O número secreto é maior');
    } else {
        alert('O número secreto é menor');
    }
}

Com essa modificação, o jogo será encerrado se o usuário clicar em "cancelar". Espero ter ajudado!

Um forte abraço e bons estudos!

eu so não entendi o do pq de outras pessoas que não colocaram isso deu certo, e outra, pq colocou 3 "=" para comparar o "chute" com o "null". Muito obrigado pela ajuda!