Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

navegador crashando

pessoal, eu escrevi o código (depois de muita, muita tentativa e erro) e como segredos, utilizei os números de lost

Quando fui executar o código, percebi que o navegador não apontava nenhum erro, entretanto, ao clicar, a página simplesmente travava, e quando eu dava f5, a página demorava horrores para recarregar e não recarregava, simplesmente exibia uma mensagem de erro no navegador.

Imaginei que eu pudesse estar declarando valores demais no array e o navegador não estava send capaz de executar o programa (por motivo de ser mt coisa para verificar ou whatever) portanto reduzi para três números, chegando à atual versão do código

<meta charset="UTF-8">

<input/>
<button>Compare com o meu segredo!</button>

<script>

    var segredos = [3, 5, 7];
    var input = document.querySelector("input");

    function verifica () {
        var achou = false;

        for(var i = 0; i < segredos.length; i = i++) {
            if(segredos[i] == input.value) {
                achou = true;
                break;
            }
        }

        if(achou == true) {
            alert("Parabéns! Você acertou!");
        } else {
            alert("Infelizmente você errou :(");
        }
    }

    var button = document.querySelector("button");
    button.onclick = verifica;


</script>

Quando dei f5, ainda sem mensagens de erro, testei um número certo e o navegador exibiu corretamente a mensagem de acerto

Porém, quando testei com um número errado aconteceu o mesmo problema que ocorria antes, a página crashou.

O que eu fiz de errado?

1 resposta
solução!

Olá Artur,

o problema está no incremento i = i++. Se você colocar um console.log(i) dentro do for, dá para notar que o i fica sempre com o valor de 0. Por isso o seu navegador crasha, dado que i fica para sempre com o valor 0 e o for nunca termina de executar, ou seja, um dá um loop infinito. Tanto que se você passar até mesmo o número 5 (o segundo no array) ele também dará problema.

Para fazer o incremento de 1 usando o ++ você não precisa fazer novamente a atribuição. É só colocar i++ como último valor no for que ele já faz automaticamente o aumento de 1 em cima da sua variável i.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software