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

O array não esta lendo as demais posições além da 1ª

Quando coloco o programa para rodar, ele só entende como certo a primeira posição da variável "segredos".

<meta charset="UTF-8">

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

<script>

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

    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>
3 respostas
solução!

Opa Igor o problema está nesse trecho

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();
        }

você está fazendo o loop, certo? No primeiro if você verifica se o valor do input é igual ao segredo, se for igual vc exibe um alerta e para a execução do loop.

Mas aí que vem o problema, vaso ele não ache, a execução do sistema vai para o segundo if, o segundo if simplesmente verifica se a variável achou é false, como você não achou valor algum e ela continua como false, a condição do if é satisfeita e acaba exibindo a mensagem de que vc errou.

Como é um curso de lógica de programação eu vou dar como dica para vc repensar o posicionamento desse segundo if.

Qualquer coisa escreve aí

Tenta entender o que o loop está fazendo e o que esse if está fazendo aí dentro.

Muito obrigado não havia percebido que o segundo "if" estava dentro do "for".