3
respostas

segredos.length não esta funcionando.

O meu length não esta mudando de cor e o meu programa não esta funcionando, acho q deve ser por isso. Porque ele não esta funcionando?

<meta charset="UTF-8">


<input/>
<button>Confira se voçê acertou</button>


<script>
    var valores = [5,7,10,2,3];

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

    input.focus();

    function verifica() 
    {
        var achou = false;    
        for( var posicao = 0; posicao < valores.length; posicao++)
        {
            if(input.value == valores[posicao])
            {
                alert("Voçê acertou");
                achou = true;
            }break;
            if(achou == false)
            {
                alert("Voçê errou");
            }    
        }


        input.value = "";
        input.focus();
    }

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










    </script>
3 respostas

Gustavo a sua função esta com problema de lógica:

function verifica() { var achou = false; for( var posicao = 0; posicao < valores.length; posicao++) { if(input.value == valores[posicao]) { alert("Voçê acertou"); achou = true; break; }

    }

if(achou == false) { alert("Voçê errou"); }

    input.value = "";
    input.focus();
}

Em

if(input.value == valores[posicao])
            {
                alert("Voçê acertou");
                achou = true;
            }break;

O break está fora da verificação do if, o colocando dentro assim

if(input.value == valores[posicao])
            {
                alert("Voçê acertou");
                achou = true;
                break;
            }    

faz seu código rodar normalmente. Mas seu segundo if

if(achou == false)
            {
                alert("Voçê errou");
            }    

Está dentro do for, com isso seu código vai imprimir várias vezes o alert("Voce errou"); só colocar ele fora assim

    function verifica() {

        var achou = false;    
        for( var posicao = 0; posicao < valores.length; posicao++) {

            if(input.value == valores[posicao])
            {
                alert("Voçê acertou");
                achou = true;
                break;
            }    
        }
        if(achou == false)
        {
                alert("Voçê errou");
        }

que o alert só será imprimido uma vez, já que a verificação de false só ocorrerá fora do laço de repetição. Sobre seu valores.length não mudar de cor, aqui não muda também, mas funciona. O do professor pode mudar pela versão do programa ser diferente, ou por estar rodando em uma outra plataforma ( IOS ).

Oi gustavo ainda tem alguma dúvida ou já foi solucionada ?