2
respostas

Desafio código (erro).

Na compilação, a primeira linha aparece "Você errou... Eu tinha pensado no undefined".

<meta charset="UTF-8">

<script>

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

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

    function sorteia(n){
        var numeroPensado = Math.round(Math.random() * n);
    }

    var numeroPensado = sorteia(10);
    var chute = parseInt(prompt("Já pensei. Qual você acha que é?"));


    if(chute == numeroPensado){
        mostra("Uau! Você acertou, pois eu pensei no" + numeroPensado);
    } else {

        mostra("Você errou... Eu tinha pensado no " + numeroPensado);
    }   

    if(chute > numeroPensado){
        mostra("Seu chute é maior que o número pensado.");
    } else {
        mostra("Você errou. Seu número é menor que o número pensado.");
    }



</script>
2 respostas

Olá Lucas,

Esse erro está ocorrendo porque você está declarando a variável numeroPensado duas vezes. Uma vez dentro da função sorteia() e outra vez fora dela.

A variável que o if está enxergando é a que foi declarada fora da função e está sem um valor atribuído, por isso que retorna undefined.

Para corrigir esse erro basta retirar a declaração da variável numeroPensado de dentro da função sorteia() e retornar o valor aleatório calculado.

A função sorteia() ficará da seguinte forma:

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

Lucas,

O código completo ficará da seguinte forma:

<meta charset="UTF-8">

<script>

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

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

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

    var numeroPensado = sorteia(10);

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


    if (chute == numeroPensado){
        mostra("Uau! Você acertou, pois eu pensei no " + numeroPensado);
    } else {
        mostra("Você errou... Eu tinha pensado no " + numeroPensado);
    }   

    if(chute > numeroPensado){
        mostra("Seu chute é maior que o número pensado.");
    } else {
        mostra("Você errou. Seu número é menor que o número pensado.");
    }

</script>

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software