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

Problema naAatividade 15 da Aula 07

Quando executo no Google Chrome o código não retorna se eu acertei ou errei o Chute, só aparecendo depois de terminar as 3 tentativas, porém no Internet Explorer ele funciona corretamente, será que pode ser compatibilidade com o Chrome ?

<meta charset="utf-8">

<script>

    function pulaLinha(){

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

    }

    function mostra(frase){

        document.write(frase);
        pulaLinha();

    }

    var numeroPensado = Math.round(Math.random() * 10);

    var tentativas = 1;

    while(tentativas <= 3)    {

        var chute = parseInt(prompt("Digite seu chute !"));

            if(chute == numeroPensado) {

                mostra("Acertou mizeravi !");

            } 

                else {

                    mostra("Você errou !");    

                }

                tentativas ++;    

    }

</script>
4 respostas

A resposta simples é: você precisa sair do loop (while) quando acertar

mostra("Acertou mizeravi !");
exit;

A explicação é que a condição do while verifica somente se o número de tentativas foi atingida.

Tudo bem, mas o problema não é sair do loop quando acertar, a questão é que não aparece na tela conforme você vai fazendo as tentativas, ele só mostra as tentativas, independente do acerto ou erro, no final da execução ou seja, depois das 3 tentativas ou depois do acerto

solução!

Você não deve usar mostra que usa document.write por debaixo dos panos. Use alert. document.write é limitado e só existe porque é o mais fácil de usar para quem esta aprendendo lógica. É por isso que esta dando um comportamento diferente entre navegadores.

Em suma, seu problema não foi de lógica, mas apenas o uso do document.write. Vai de alert!

Entendi Flavio, ja alterei e testei aqui, funcionou perfeitamente muito obrigado