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

Por que o break não é ativado?

Ola a todos, desde já obrigado pela atenção de todos!

Porque no primeiro IF dentro do FOR, quando o input.value == segredos[posicao] ele nao para com o BREAK, qual a necessidade de colocar o "achou = true", sendo que o valor do input vai dar positivo, vai ser verdadeiro, logo ele deveria parar mesmo sem o "achou = true" certo ?

Resumindo se "input.value == segredos[posicao]" ele deveria parar no Break, mas porque ele nao para? Porque tenho que colocar o "achou = true" ?

<script>
    var achou = false;
    var segredos = [5,7,10,2];

    //querySelector puxa do HTML
  var input = document.querySelector("input"); 
  input.focus() ;   

    function verifica(){
    //input.value recebe o valor do input, assim como button.onclick so ativa com o clique

        for( var posicao = 0; posicao < segredos.length; posicao++ ){

        if (input.value == segredos[posicao]){
            alert("Voce Acertou!!!");
            achou = true;

            break;
        }

            }
        if ( achou == false){
            alert("Você Errou!");

        }



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

    }    
   var button = document.querySelector("button");

    button.onclick = verifica;  

</script>
4 respostas

Olá Geovanni, tudo bem?

Não é necessário utilizar o break. Pois se na verificação do bloco abaixo, o resultado for verdadeiro (true), ele irá rodar o script dentro do if, e como está sendo atribuido o valor true para a variável achou ele não entrará no 2º bloco de if.

if (input.value == segredos[posicao]){
     alert("Voce Acertou!!!");
     achou = true; 
}

Muito obrigado pela ajuda, ficou mais claro!! Mas outra questão, pq só o break não funciona ?

solução!

Então, como vc declarou no inicio var achou = false, para ele não entrar no 2º if, vc deve atribuir dentro do 1º if o valor true para a variável achou.

Muito obrigado pelo esclarecimento ! Sucesso