10
respostas

Problema com o texto na tela

Não sei por que a função mostra ("Você errou :(") só é exibida quando se encerra as tentativas e não entre elas.

<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);
console.log (numeroPensado);

var tentativas = 1;

    while(tentativas <= 3) {

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

    if (chute == numeroPensado) {

        mostra("Você acertou :)");
        break; 

    } else {

        mostra("Você errou :(")
    }

    tentativas++;
}

</script> 
10 respostas

##

<script>

    function pulaLinha() {

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

function mostra(frase) {

    document.write(frase);
    pulaLinha();
}

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

var tentativas = 1;

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

while(tentativas <= 3) {

if (chute == numeroPensado) {

    mostra("Você acertou :)");
    break;
} else {

    mostra("Você errou :(")

     break;
}
tentativas++;

}

</script> 

Tava faltando o ( break; ) entre o else, para poder parar caso errar uma única vez

Comigo aconteceu a mesma coisa. Você conseguiu arrumar?

O código que eu coloquei a cima faz exatamente isso. É necessário colocar o ( break; ) também no ELSE.

Como o professor deixou avisado lá no vídeo:

Atenção: com atualizações, o Google Chrome agora só mostra as mensagens através de document.write() realizadas dentro de um loop, somente quando a página for carregada completamente, isto é, quando o loop termina. Neste caso, para efeito de aprendizagem, utilizem alert() no lugar de document.write().

Também tinha ficado perdido nessa hora e acabei vendo essa explicação na parte da transcrição do video.

Espero ter ajudado.

Obrigada!

obrigada tb

Obrigado Igor Santiago.

No entanto a "solução" dado por nosso companheiro Augusto Octavio Nascimento nesse caso não está correta, pois como ele cololocou o comando breack tanto no acerto como no erro, o programa encerrará sempre com a apenas uma tentativa.

Substituindo a função mostra pelo comando alert, fica assim:

while(tentativas < 3){

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

if(chute == numeroPensado) {

    alert("Você ACERTOU!");
    break;

} else {

    alert("Você ERROU!");
}

    tentativas++;

}

mostra("FIM!");

@IgorSantiago, obrigada, era o que estava acontecendo aqui!

Bah...passei voado por aquela parte do texto ali e depois passei o maior tempo tentando entender o que eu estava fazendo de errado...affff.

Valeu Igor!!

Obrigado Augusto pela dica.