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

Dúvida sobre um laço while

Boa tarde, o meu programa funcionava corretamente e do nada ele começou a apresentar um erro quando eu executo o seguinte código:

<meta charset="UTF8">
<script>
    function pulaLinha() {
        document.write("<br>");
    }
    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }
    var numeroPensado = 3;
    var tentativa = 1;
    while(tentativa <= 3) {
        var chute = parseInt(prompt("Digite seu palpite..."));
        if(chute == numeroPensado) {    
            mostra("Parabéns, você acertou!");
        } else {
            mostra("Você errou!");
        }
        tentativa = tentativa + 1;
    }
    mostra("Fim!");
</script>

O programa antes mostrava a frase "Vc errou" a cada tentativa errada ou mostrava os "Parabéns" quando eu acertava, agora ele independente de eu acertar ou errar, repete 3x a pergunta sobre o palpite e só depois imprime as mensagens, inclusive, eu acertei na segunda e ele continuou, mostrando o resultado a seguir:

Você errou! Parabéns, você acertou! Você errou! Fim!

Poderia ser um erro do interpretador (Sublime)? Agradeço desde já a ajuda...

5 respostas
insira seu código aqui

Robson, bom dia.

Tenta usar input text para o valor e um botão para disparar sua função javascript porque as vezes os navegadores interpretam os comandos prompt como indesejáveis e bloqueiam instruções repetidas dentro de loops.

Pois isso no passado era usado de sacanagem para travar a máquina de usuários quando acessavam sites com scripts maliciosos.

Se te ajudei com a minha resposta, marque-a como solucionada, por favor! Obrigado. Abs.

solução!

Faltando o uso do Break no while e do return no if, por isso vem acontecendo esse resultado!!

A resposta do Carlos está correta! Exatamente isso. Marque a resposta dele como solução!

Olá Murilo Ramos Parra e Carlos Antonio Silva do Nascimento, primeiramente, Murilo, era problema do navegador bloqueando mesmo, executei o mesmo arquivo no Mozilla e ele rodou perfeitamente, sem alterações, muito obrigado pela dica. E Carlos Antônio, eu estou iniciando na programação, ainda não vi o return no If, mas assim que ver, eu testarei com essas suas dicas. Muito obrigado aos dois pela atenção!