Boa tarde, pessoal!
É o seguinte, estava refazendo o código da aula, e defini a variável achou
antes da função verifica
.
var achou = false;
function verifica () {
Dessa forma, quando errava o "segredo", não aparecia nenhum alerta.
Tentei diversas modificações, até perceber que só apareceria o alerta de erro caso a variável fosse definida dentro da função.
function verifica () {
var achou = false;
Porém, não consigo entender o porquê disso.
Se a variável já está definida desde o início, após clicar no botão, e o programa verificar que não houve acerto, por quê o if
responsável por alertar o erro não é selecionado?
Aqui está o código inteiro, para o caso de haver mais coisas que não percebi:
<meta charset="UTF-8">
<input/>
<button>Entra</button>
<script>
var input = document.querySelector("input");
var segredos = [2, 7, 10, 5];
input.focus();
var achou = false;
function verifica () {
for(var posicao = 0; posicao < segredos.length; posicao++) {
if(input.value == segredos[posicao]) {
alert("Você acertou!");
var achou = true;
break;
}
}
if(achou == false) {
alert("Você errou!");
}
input.value = "";
input.focus();
}
var button = document.querySelector("button");
button.onclick = verifica;
</script>
Por favor, me ajudem. Tô tentando entender isso faz tempo. rs