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

duvida em relaçao ao Math.random()

ola, quando eu coloco o console.log(Math.round(Math.random()10 )); e coloco o numero escolhido no console nao aparece voce acertou aparece voce errou , mas quando eu coloco console.log(segredo) e coloco o numero ai aparece no alert voce acertou , nao entendi porque alguem poderia explicar segue o codigo:

<meta charset="utf 8">

<input/>

<button> compare com o meu  segredo</button>



<script>
    var segredo = Math.round(Math.random()* 10);
    console.log (segredo)//(Math.round(Math.random()* 10));
    var input = document.querySelector("input"); 

    function verifica() {


        if(input.value == segredo ){

        alert (" voce acertou");

        }else {

        alert ("voce errou");
        }


    }


    var button = document.querySelector ("button");

    button.onclick = verifica    
</script>
3 respostas

E aí, Carlos. Tudo certo?

Quando vc insere o "var segredo = Math.round(Math.random()* 10)" no código, vc está atribuindo um valor aleatório à variável segredo, que será usado pela função "verifica" para comparar com o valor do input (o bloco if é quem faz essa comparação). Quando vc faz o console.log(segredo), o valor atribuído à variável segredo é apresentado no console.

Por outro lado, se vc der um console.log(Math.round(Math.random()* 10)), será gerado outro valor aleatório, que é diferente da variável segredo. Por isso que, nesse caso, o valor do console aparece como errado no alert: ele não corresonde ao valor atribuído à variável segredo.

Como exemplo, tente incluir no seu código as linhas abaixo e veja o resultado: os valores gerados serão diferentes!

console.log("Valor gerado aleatoriamente " + Math.round(Math.random()* 10))
console.log("Valor da variável segredo " + segredo)

Obs.: em alguns casos raros, pode ser que o valor gerado aleatoriamente corresponda ao mesmo número da variável segredo.

Não tenho certeza era isso que vc queria esclarecer, mas qualquer coisa é só avisar que complemento a resposta, se eu souber!

Abraço e bons estudos!!

oi raphael td bem

obgado pela sua resposta, vendo aqui, sao gerados dois numeros um para console.log(segredo) e outro para console.log(Math.round(Math.random()* 10)), e o programa vai considerar o numero que foi gerado pelo console. log (segredo) pq esta variavel esta na funçao, quando eu coloco console.log(Math.round(Math.random()* 10)), é como se eu estivesse pulando uma etapa e pedindo para o programa acertar o numero sem ter colocado ele na variavel . por isso da erro , foi isso que entendi.

solução!

Exatamente, Carlos!