2
respostas

Mesmo quando ACERTO, aparece o alert ERROU

Eu conferi meu código com os de outros e não encontrei a resposta. O meu aparece o alert "Você errou", mesmo quando eu acerto.

<meta charset="UTF-8">

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

<script>

    var segredos = [5,7,10,2,3];

    var input = document.querySelector("input");
        input.focus();

    function verifica() {

    var achou = false;
    for(var posicao = 0; posicao < segredos.length; posicao++) {
                if(input.value == segredos[posicao]) {

                    alert("Você ACERTOU!!!");
                    achou = true;
                    break;
   }
}

    if(achou == false); {
        alert("Você ERROU!!!");
}
         input.value = "";
         input.focus();   
}   

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

</script>
2 respostas

Oi Marcio

No if(achou == false); { tem um ponto e vírgula antes da chave, fazendo a instrução acabar antes das chaves, basta tirar que seu código irá executar normalmente.

Tem hora que acontece esse tipo de detalhe mesmo, não aparece erro em nenhum lugar e não temos ideia do que pode ser, a recomendação é sempre que não estiver conseguindo ver o problema levante, tome uma água ou café que na volta sua mente estará mais atenta a alguns detalhes que não viu, ou pode chamar algum amigo e ir lendo linha a linha pra ele explicando o que está acontecendo, assim você mesmo vê o problema.

Tem até uma técnica chamada rubber duck justamente pra esse tipo de situação: https://pt.wikipedia.org/wiki/Debug_com_Pato_de_Borracha

Nossa, fiquei um tempinho pra achar o erro, quem diria que foi apenas o ";" hahaha