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

não entendi a variável - var achou = false

<meta charset="UTF-8">

<input/>
<button>Digite o segredo</button>


<script>
var segredos = [2,4,6,8,10]

var input = document.querySelector("input")

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

Olá

Vou comentar a cada linha do código para facilitar o entendimento:

var achou = false                              <<<---  definindo uma variável do tipo boolean (que só tem conteúdo true ou false) e inicializando como false
for(var posicao = 0 ; posicao < segredos.length; posicao++){       <<<<---- varre o elemento de segredos em cada posição até o tamanho total de segredos
    if(input.value == segredos[posicao]){                    <<<<---- se o conteudo digitado for igual ao conteúdo da posição atual
        alert("você acertou")                                            <<<<---- mostra a mensagem que houve acerto
        achou = true                                                          <<<<---- e muda o valor da variavel achou para true

} if(achou == false){ <<<--- caso ao final do laço o conteudo da variavel achou continue sendo false alert("você errou") <<<--- significa que você errou }

Espero ter conseguido esclarecer sua dúvida. Abraço e bom treinamento

Olá mauricio tudo bem? só mais uma duvida eu não entendi o por que de usar o if e else não funciona.

if(xxxx){ } else{xxxx}

solução!

Jonatas,

Usar o if e else não funciona porque o if está dentro do for e precisamos esperar o for ser executado todas as vezes para sabermos se o valor foi encontrado ou não. Por esse motivo que o if que verifica se a variável achou é igual a false está fora do for.