3
respostas

Erro if, entra mesmo se for false.

Olá pessoal, tudo tranks? escrevi esse codigo, porém mesmo meu if's estando certinho ( a principio) ele entra dentro de cada if e exibe o alerta, não consegui encontrar o erro, alguém poderia me ajudar? desde já agradeço!

<meta charset="utf-8">

<script>

    function pulaLinha() {
        document.write("<br>")
    }
    function mostra(frase) {
        alert(frase)
        pulaLinha();
    }
    function sorteia() {        
        return Math.round(Math.random()*10);

    }

    var  chute = parseInt(prompt("Insira abaixo seu CHUTE!"));

    if(chute == sorteia()){
        mostra("Parabéns, você acertou mizeravi!");
    }
    if(chute !== sorteia()){
        if(chute > sorteia()){
            mostra("errouuuuuuuuuuu");
            mostra("seu chute foi bem mais alto!");
        }
        if(chute < sorteia()){
            mostra("errouuuuuuuuuuu");
            mostra("seu chute foi fraquinho hein....");
        }
    }

    mostra("O Numero sorteado foi " + sorteia());
</script>
3 respostas

Eu fiz o teste do seu código e funcionou pra mim.

No caso não entendi qual seria o erro que você está se referindo.

Não entendi a que tipo de erro você se refere. Ah! adicionei um comando para atualizar depois do resultado blz!? ;-)

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

        function mostra(frase) {
            alert(frase)
            pulaLinha();
        }

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

        }

        var chute = parseInt(prompt("Insira abaixo seu CHUTE!"));

        if (chute == sorteia()) {
            mostra("Parabéns, você acertou mizeravi!");
        }
        if (chute !== sorteia()) {
            if (chute > sorteia()) {
                mostra("errouuuuuuuuuuu");
                mostra("seu chute foi bem mais alto!");
            }
            if (chute < sorteia()) {
                mostra("errouuuuuuuuuuu");
                mostra("seu chute foi fraquinho hein....");
            }
        }

        mostra("O Numero sorteado foi " + sorteia());

        location.reload();
    </script>

Boa tarde Meu amigo Jefferson Souza Machado !

Esse seu foi Difícil pra testar, kkkkk ! Nós iniciantes sofremos pela falta de destreza né? Mas com perseverança aprenderemos, assim espero! Pesquisei então testei até entender na pratica o que sua função sorteia() estava fazendo em cada if! Então esta dando erro por que vc não criou variável para receber os dados do return ,e você esta criando seus if's comparando uma variável com uma função que gera um novo número automaticamente toda vez que a "chama" ela, ai é que tá a pegadinha, assim toda vez que vc "chama" a função ela executa os parâmetros dentro dela ou seja: ele cria um novo return que foi alimentado pela Math.random com um numero diferente! Seus if's estão comparando números diferente para todo função sorteia(), ele só não executa todos if´s se em algum momento atender a condição por isso nosso amigo Victor Issao Arata não conseguiu identificar o erro, tem hora que é "funcional". Ultima observação é para o Wanderson Coutinho Serra o parâmetro location.reload(); ao testar o algorítimo gera um loop sem fim no programa , o que o torna irritante, podendo ser finalizado somente se fechar o browser, neste caso eu colocaria um mostra(" Vamos jogar novamente! Clique em F5 no seu teclado ou atualize seu navegador."); ou algo mais simples se existir neste momento , sei que talvez este parâmetro combinado com algo mais seria perfeito. Mas como somos iniciantes não tenho nem ideia qual seria kkkkkkk .

<meta charset="UTF-8">
<script>

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

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

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

    var numeroPensado = sorteia(10);
        console.log (numeroPensado); 

    alert ("Vamos jogar ADIVINHAÇÂO? Eu Penso em um número e você tenta adivinhar qual é! VAMOS LÁ!!!")

    alert (":-)  AHHH!!! Vou te ajudar um pouco esse numero vai ser entre 0 e 10.  ;-) ")

    var chute = parseInt(prompt("Já pensei! Então qual número você acha que é? "));

    if(chute == numeroPensado) {
        mostra("<h1>PARABÉNS!!!</h1> Você ACERTOU, pois eu pensei exatamente no número. " + numeroPensado +".");
    } else {
        if (chute < numeroPensado) {

            mostra("Infelizmente você ERROU seu chute "+ chute + " é MENOR do que "+ numeroPensado +".");
        }else {
            mostra("Infelizmente você ERROU seu chute "+ chute + " é MAIOR do que  " + numeroPensado +".");
        }
    }

mostra("<h3> Vamos jogar novamente! Clique em F5 no seu teclado ou atualize seu navegador.</h3>");

</script>

Este foi o meu código desde já espero estar ajudando e se tiver algo errado em meu código ou comentário fico imensamente grato pelas observações, Muito Obrigado amigos pela oportunidade.