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

Gostaria de saber porque o Return não esta funcionando para o meu código.

<meta charset=<"UTF-8">


<script>
    function pulaLinha() {

        document.write("<br>");
    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
    }
    function sorteio(n) {

       var numeroPensado = Math.round(Math.random() * n);
       return numeroPensado ;
    }

    sorteio(100);

    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);
    }

</script>
5 respostas

Fala Lucas beleza ?

Porque a variável numeroPensado só existe dentro da função sorteio(), por isso da undefined.

Tenta retornar só o random e declara a variavel fora da função desse jeito:

    function sorteia(n) {

        return Math.round(Math.random() * n);
    }    

    var numeroPensado = sorteia(10);

Ai você pode usar a variável para fazer o if

solução!

Oi, Lucas! Tudo bem?

A resposta é aquela mesma do Felipe Nascimento. Mas gostaria de colocar algumas observações que ficaram implícitas.

Existe um conceito comum em diversas linguagens de programação que é o escopo. Tal que, a visibilidade ou o acesso de trechos de código é disponível apenas dentro do escopo desses.

Em JS, o que define o escopo de uma variável é o local onde esta é declarada. Se declarada em uma função, ficará visível apenas em seu escopo, isto é, dentro desta função. Se declarada em uma função interna, ficará visível apenas na função interna. Se declarada fora da função, ficará visível para todas as funções.

Existe uma peculiaridade, as variáveis globais implícitas em Javascript. Recomendo pesquisar sobre.

Veja esta página: https://medium.com/weyes/entendendo-o-uso-de-escopo-no-javascript-3669172ca5ba. Achei bem explicativa.

É isto aí! Algumas linguagens definem algumas características específicas sobre a delimitação de seu escopo, tais como em C, Java, PHP ou Python. Mas a ideia geral é a mesma, a visibilidade das variáveis (ou outras entidades, como: funções, métodos, objetos etc.) no código.

Oi Lucas, tudo bem?

Sua dúvida foi solucionada?

Posso fechar o tópico?

Sim muito obrigado colegas!!!

Ok, vou fechar!

Qualquer coisa estamos por aqui para ajudar :)