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

Código aparentemente idêntico ao da aula...

O meu código aparenta estar igual ao da aula mas mesmo assim continuam aparecendo os alerts "você errou"! Alguém saberia me dizer o que há de errado?

<meta charset="UTF-8">

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

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


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

    function verifica() {

    var achou = false;

    for (var posição = 0; posição < segredos.length; posição++) {

        if (input.value == segredos[posição]) {

            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>

Obrigado desde já.

5 respostas

Oi Matheus, tudo bem?

Rodei o seu código aqui e me parece normal! Quando eu digito um número que está dentro da variável segredos, ele funciona normalmente. Veja abaixo:

Alerta de acerto

Como 5 está dentro da lista da variável segredos, ele mostra um alerta "Você acertou!". Caso eu coloque um número que não se encontra nessa variável, como por exemplo 30, ele irá mostrar que eu errei:

Alerta de erro

Sendo assim, está funcionando normalmente! Você não obtém esse mesmo comportamento? Pode especificar melhor qual o erro para eu conseguir te auxiliar melhor?

De qualquer maneira, espero ter ajudado, abraços!

Oi Giovanna,

O meu problema surge quando digito o ultimo número do array (3), nesse caso aparecem 4 menssagens de alert "Você errou!" antes de surgir a última dizendo "Você acertou!".

Queria saber como fazer com que essas menssagens anteriores não apareçam assim como não aparecem no último teste que o professor fez no vídeo como código.

![](Insira aqui a descrição dessa imagem para ajudar na acessibilidade )

solução!

Oi Matheus!

Rodei o seu código aqui novamente e mesmo digitando o número 3, aparece apenas o alerta de "Você acertou!", não aparece nenhum alerta de erro.

Você está rodando o mesmo código que eu? Estou rodando o que você me mandou aqui, talvez você não tenha salvo algo corretamente! Esse comportamento é estranho pois o if que verifica se a variável achou é falsa está fora do laço de repetição, como deve ser. Talvez no seu código, esse if esteja dentro do laço de repetição, fazendo com que o alerta mostre várias vezes. Remova esse if para fora do laço que deve funcionar corretamente.

Espero ter ajudado!

Sinceramente não sei o que aconteceu...

Fui rodar o código novamente e agora ele está funcionando como esperado! Estranho, mas tudo bem.

Muito obrigado pelo seu tempo!

Olá, Matheus Nogaroli

O meu código reagiu da mesma forma, notei que na sua linha for a palavra posição está com"ç e ã". Quando eu retirei deixando " posicao" meu codigo rodou normal. Eu acredito que era a digitação.

` for (var posição = 0; posição < segredos.length; posição++) {

    if (input.value == segredos[posição]) {


    Fique bem.