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

Arquivo não abre

Estou aprendendo a programar e me deparei com um problema no qual não sei solucionar.

Ao rodar o arquivo no navegador ele carrega infinitamente e exibe uma mensagem, "Página sem resposta. Aguarde até que ela volte a responder ou saia da página".

Por acaso alguém saberia me ajudar?

4 respostas

Oii Pedro, tudo bem?

Pelo o que você falou, parece que seu navegador tá entrando em um loop infinito ao tentar carregar a página. Costumar acontecer quando tem um erro no código que faz com que ele nunca termine de executar.

Baseado no contexto da aula que você está seguindo, você pode tá esquecendo de incrementar a variável multiplicador dentro do loop while. Se a variável não for incrementada, a condição do while nunca será falsa, resultando em um loop infinito.

Aqui tá como código deve estar estruturado:

<meta charset="UTF-8">

<script>
    function pulaLinha() {
        document.write("<br>");
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

    var multiplicador = 1;

    while (multiplicador <= 10) {
        mostra(7 * multiplicador);
        multiplicador = multiplicador + 1; // Certifique-se de que esta linha está presente
    }

    mostra("FIM");
</script>

Se você estiver utilizando um loop for, certifique-se de que ele está corretamente configurado:

<meta charset="UTF-8">

<script>
    function pulaLinha() {
        document.write("<br>");
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

    for (var multiplicador = 1; multiplicador <= 10; multiplicador++) {
        mostra(7 * multiplicador);
    }

    mostra("FIM");
</script>

Verifica, por favor, se o seu código tá semelhante a um dos exemplos acima. Se ainda assim o problema persistir, por favor compartilhe o seu código. Você pode seguir esse guia sobre como fazer uma boa pergunta no fórum.

Um abraço e bons estudos.

<meta charset = "UTF-8">

<script>

    function pulaLinha() {

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

    function mostra(texto) {

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

    let loginCadastrado = "pedrohernandes";
    let senhaCadastrada = "54321";

    var maximoTentativas = 3;
    var tentativaAtual = 1;

    while(tentativaAtual <= maximoTentativas); {

    var loginInformado = prompt("Insira seu login:");
    var senhaInformada = prompt("Agora, insira sua senha");

    if(loginCadastrado == loginInformado && senhaCadastrada == senhaInformada) {

    alert("Bem-vindo à página inicial, " + loginInformado);

    tentativaAtual = maximoTentativas // com o login, não devem existir mais tentativas
    

    } else {
    
        if (tentativaAtual == 3) {
        
            alert("O login ou senha informados estão incorretos! Tente novamente");
        }
    }

    tentativaAtual = tentativaAtual + 1
}

</script>

Este é o código que eu criei, feito de maneira autônoma para tentar fixar o aprendizado em minha cabeça. Não sei se consigo encaixar a sua dica dentro dele de maneira correta. O que achou do codigo, e como acha que pode ser resolvido?

solução!

Oii Pedro, tudo bem?

O problema no seu código tá no ponto e vírgula extra no final da condição do while. Esta é a causa do loop infinito, pois a condição nunca é realmente avaliada. Remova o ponto e vírgula após a condição do while.

O código corrigido:

<meta charset="UTF-8">

<script>
    function pulaLinha() {
        document.write("<br><br>");
    }

    function mostra(texto) {
        document.write(texto);
        pulaLinha();
    }

    let loginCadastrado = "pedrohernandes";
    let senhaCadastrada = "54321";

    var maximoTentativas = 3;
    var tentativaAtual = 1;

    while (tentativaAtual <= maximoTentativas) { // Removi o ponto e vírgula aqui

        var loginInformado = prompt("Insira seu login:");
        var senhaInformada = prompt("Agora, insira sua senha");

        if (loginCadastrado == loginInformado && senhaCadastrada == senhaInformada) {
            alert("Bem-vindo à página inicial, " + loginInformado);

            tentativaAtual = maximoTentativas; // Com o login, não devem existir mais tentativas

        } else {
            if (tentativaAtual == 3) {
                alert("O login ou senha informados estão incorretos! Tente novamente");
            }
        }

        tentativaAtual = tentativaAtual + 1;
    }
</script>

Com essa correção, o loop while deve funcionar como esperado e parar após três tentativas ou se o login for bem-sucedido.

Um abraço e bons estudos.