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

Meus resultados aparecem somente ao fim dos inputs

Pessoal, ao fazer o programa como o professor meus resultados de VOCÊ ERROU não aparecem em cada input, mas sim ao final dos três (ou após a pessoa acertar). Não consegui identificar o erro... Alguem consegue me ajudar por favor? Abs

<meta charset="utf-8">

<script type="text/javascript">

    function pulaLinha() {

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

    function mostra (x) {

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

    var numeroPensado = 4;

    var tentativas = 1;

    while(tentativas <= 3){

        var chute = parseInt(prompt("Digite seu chute! É um número de 0 a 10"));

        if(chute == numeroPensado) {

            mostra("Você ACERTOU! O número pensado é " + numeroPensado);
            break;
        } if(chute != numeroPensado)  {

            mostra("Você ERROU!");

        }

        tentativas++;

    }

</script>
2 respostas
solução!

Bom dia Matheus,

Fiz o teste do seu código e está funcionando perfeitamente aqui. Parabéns! Verifique se não esqueceu de salvar antes de rodar, ou não recarregou o browser.

No seu código, é feito sempre 2 perguntas a cada interação. Uma se o "chute == numeroPensado" e outra se "chute != numeroPensado". Mas concordamos que se o número é diferente do numero pensado, ele não será ao mesmo tempo igual ao numero pensado durante cada interação/loop. E vice-versa. Então para o sistema não precisar fazer essa validação 2 vezes a cada interação, vc pode usar o else if ou o else, para a segunda interação. Nesse exemplo de código pequeno, não há impacto na performance da aplicação, mas é bom já ir praticando.

Original:

if(chute == numeroPensado) {

            mostra("Você ACERTOU! O número pensado é " + numeroPensado);
            break;
        } if(chute != numeroPensado)  {

            mostra("Você ERROU!");

        }

Alterado 1: Aqui ele somente pergunta se o numero é diferente do pensado, caso ele não seja igual o numero pensado.

if(chute == numeroPensado) {

            mostra("Você ACERTOU! O número pensado é " + numeroPensado);
            break;
        } else if(chute != numeroPensado)  {

            mostra("Você ERROU!");

        }

Alterado 2: Como sabemos necessariamente que se o numero não é igual ao numero pensado, obrigatóriamente ele é diferente, então poderá usar o else e sem a segunda pergunta.

if(chute == numeroPensado) {

            mostra("Você ACERTOU! O número pensado é " + numeroPensado);
            break;
        } else  {

            mostra("Você ERROU!");

        }

Muito obrigado, Renan!!