1
resposta

[Dúvida] nao entendo porque meu codico esta tento um comportamento diferente da aula proposta

<meta charset="UTF-8" />

<input type="text" />

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

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

  var input = document.querySelector('input')
  input.focus()

  function verifica() {
    for (var posicao = 0; posicao < 4; posicao++) {
      if (input.value == segredos[posicao]) {
        alert('VOCE ACERTOU')
        break
      } else {
        alert('VOCE ERROU')
      }

      input.value = ''
      inpu.focus()
    }
  }

  var button = document.querySelector('button')

  button.onclick = verifica
</script>
1 resposta

Olá Luis, tudo bem? Espero que sim!

Ao analisar o código, identifiquei algumas possíveis razões para o comportamento diferente:

  • Erro de digitação: No trechoinpu.focus(), parece haver um erro de digitação. Deve ser input.focus() para focar corretamente o campo de texto após cada tentativa.

  • Lógica de verificação: O código atual verifica se o número inserido pelo usuário corresponde a cada um dos segredos individualmente. No entanto, ele exibirá uma mensagem de "VOCE ERROU" para cada segredo que não corresponda, o que pode não ser o comportamento desejado. Se o objetivo é exibir uma mensagem de erro apenas após todas as tentativas, é necessário ajustar a lógica de verificação.

Aqui está o código corrigido:

<meta charset="UTF-8" />

<input type="text" />

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

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

  var input = document.querySelector('input')
  input.focus()

  function verifica() {
    var acertou = false;

    for (var posicao = 0; posicao < 4; posicao++) {
      if (input.value == segredos[posicao]) {
        acertou = true;
        break;
      }
    }

    if (acertou) {
      alert('VOCE ACERTOU');
    } else {
      alert('VOCE ERROU');
    }

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

  var button = document.querySelector('button')

  button.onclick = verifica;
</script>

Nessa correção, foi adicionada uma variável booleana acertou para verificar se o usuário acertou algum segredo. A cada iteração do loop, ela é definida como true caso o número inserido corresponda a algum segredo. Após o término do loop, uma única mensagem é exibida com base no valor de acertou.

Espero ter ajudado!

Caso tenha dúvidas, fico à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!