1
resposta

Consolidando seu conhecimento 1

Conferir o programa algumas vezes, contudo não conseguir localizar o erro!

<meta charset="UTF-8">

<script>
    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

    function sorteia (n) {
        return Math.round(Math.random() * n)    
    }

   var numeroPensando = sorteia(10);

   var chutaNumero = parseInt(prompt("Já pensei. Qual você acha que é? "));

if (chutaNumero == numeroPensando) {
    mostra(" Uau! Você acertou, o numero do sorteio " + numeroPensando);
}

if (chutaNumero > numeroPensando) {
mostra("Errouuu! Seu chute é maior que o número pensado " + numeroPensando);
}else {
    mostra("Errouuu! Seu chute é menor que o número pensado");
} 


</script>
1 resposta

Felipe, tudo bom?

Você tem um erro de lógica nesse seu trecho de código.

if (chutaNumero == numeroPensando) {
    mostra(" Uau! Você acertou, o numero do sorteio " + numeroPensando);
}

if (chutaNumero > numeroPensando) {
    mostra("Errouuu! Seu chute é maior que o número pensado " + numeroPensando);
}else {
    mostra("Errouuu! Seu chute é menor que o número pensado");
} 

O que acontece se vc acertar o número? Ele passa no primeiro IF e mostra a mensagem "Uau! Você acertou, o numero do sorteio". Correto. Mas ao entrar no segundo IF ele verifica se esse número é maior do que o número passado, já sabemos que ele não é maior e sim igual, como ele não é maior ele vai para o ELSE. Como não tem nenhuma verificação ali ele mostra a mensagem que está dentro do ELSE: "Errouuu! Seu chute é menor que o número pensado"

Uma maneira de resolver isso seria assim:

if (chutaNumero == numeroPensando) {
    mostra(" Uau! Você acertou, o numero do sorteio " + numeroPensando);
}

if (chutaNumero > numeroPensando) {
    mostra("Errouuu! Seu chute é maior que o número pensado " + numeroPensando);
}

if (chutaNumero < numeroPensando) {
    mostra("Errouuu! Seu chute é menor que o número pensado");
}