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

Imprimindo resposta no navegador somente no final das perguntas

Boa noite,

Eu escrevi o código da mesma forma que o instrutor explicou na vídeo-aula, porém ao executá-lo no navegador, as respostas não aparecem uma de cada vez conforme é feita a pergunta. Somente no final dos 3 chutes. Já li e reli o código várias vezes e não consigo encontrar o erro. Alguém poderia me ajudar?

<meta charset="UTF-8">

<script>

    function pulaLinha() {

        document.write("<br>");
        document.write("<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 o seu chute"));

        if(chute == numeroPensado) {

        mostra("Você ACERTOU, o número pensado era " + numeroPensado);
        break;

        } else {

            mostra("Você ERROU!");
        }

        tentativas++
    }

    mostra("FIM")

</script>
5 respostas

Oi Jaqueline, você só se confundiu na hora de fazer o alert, quando acerta e erra o número chutado.

if(chute == numeroPensado) {
        alert("Você ACERTOU, o número pensado era " + numeroPensado); //alert() e não mostra()
        break;
        } else {
            alert("Você ERROU!");
        }
        tentativas++
    }

Olá Vânia,

Obrigada pelo retorno. Realmente, utilizando o alert as respostas aparecem uma de cada vez. Mas no exercício, o Instrutor utilizou o mostra mesmo pois a intenção dele era imprimir cada resposta na tela do navegador. Não entendi porque desse jeito não está funcionando, mas de qualquer forma toda ajuda é válida.

solução!

Jaqueline, procurei uma resposta aqui do próprio Flávio que explica o porquê da função mostra só imprimir tudo no final.

https://cursos.alura.com.br/forum/topico-problema-com-print-na-tela-29305

É a resposta marcada como solução.

Bons estudos.

Olá Vânia,

Obrigada por pesquisar e encontrar a solução do Instrutor Flávio para mim. Agora ficou mais claro que esses tipos de problemas acontecem no Java Script e conforme vamos avançando no curso, aprenderemos novas formas para corrigi-los.

Aproveitando um pouco o tema, quando rodamos o programa e só imprime tudo no final, vamos supor que fiquemos interagindo, colocando alguns dados de entrada pela função prompt ou algo do tipo, o que foi impresso na tela da oooutra vez que rodamos o programa continua aparecendo enquanto ainda não temos a nova impressão.

Pensando nisso, existe alguma função que vc "limpa" toda a tela assim que abrir o programa?