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

[Dúvida] achou is not defined!!!!

<meta charset="UTF-8">

<body>
    <main>
        <input placeholder="Digite aqui">
        <button>Adivinhe o segredo</button>        
    </main>
</body>



<script>


    var segredos = [5,6,7]
    var button = document.querySelector("button")
    var input = document.querySelector("input")



    function verifica() {

        var achou = false;

        for(i = 0; i < segredos.length; i++) {
                if(input.value == segredos[i]) {
                alert("Você acertou!")
                }
                achou = true
            }
    }

    if(achou == false) {

        alert("Você errou!")
    }


    input.focus();
    button.onclick = verifica;
    input.value = "";


</script>
1 resposta
solução!

Olá Lucca, tudo bem?

Analisando seu código percebi um erro na escopo do achou, nesse caso o achou é declarado como true fora do if:

function verifica() {

        var achou = false;

        for(i = 0; i < segredos.length; i++) {
                if(input.value == segredos[i]) {
                alert("Você acertou!")
                }
                achou = true
            }
    }

O achou começa com o valor false e ao usarmos o sinal de = atribuímos a este o valor true, porém, só devemos atribuir este valor quando for verificado que acertamos um dos números secretos da nossa lista, por conta disso o true deve ser atribuído somente dentro do if, já que é ele que verifica e passa a mensagem quando acertamos algum número:

for(i = 0; i < segredos.length; i++) {
                if(input.value == segredos[i]) {
                alert("Você acertou!")
                achou = true

            }
    }

Se precisar de ajuda estamos à disposição, conte conosco!

Tenha um bom dia e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓