1
resposta

Sobre operador de comaração

Olá, turma!

Estou com uma dúvida sobre a comparação de variáveis em JavaScript. No exercício que fizemos, aprendemos a usar o operador == para comparar o valor do chute com o numeroSecreto. No entanto, percebi que mesmo quando o chute não era igual ao número secreto, a mensagem de acerto aparecia no console.

Alguém poderia me explicar melhor como funciona essa comparação de valores em JavaScript? Quais são as diferenças entre usar == e ===? E como posso exibir uma mensagem de erro na tela, caso o chute esteja incorreto?

Agradeço desde já a ajuda de vocês! Estou empolgada em aprender mais sobre lógica de programação.

1 resposta

Olá, Andressa! Tudo bem?

É ótimo ver seu entusiasmo em aprender lógica de programação! Vamos esclarecer suas dúvidas sobre os operadores de comparação em JavaScript.

Diferenças entre == e ===

  1. == (igualdade)

    • Compara apenas os valores, não os tipos. Isso significa que ele faz uma conversão de tipo antes de comparar.
    • Exemplo:
      let numero = 5;
      let texto = "5";
      console.log(numero == texto); // true
      
    • No exemplo acima, mesmo que numero seja um número e texto uma string, a comparação retorna true porque o valor é o mesmo após a conversão.
  2. === (estritamente igual)

    • Compara tanto os valores quanto os tipos. Não há conversão de tipo.
    • Exemplo:
      let numero = 5;
      let texto = "5";
      console.log(numero === texto); // false
      
    • Aqui, a comparação retorna false porque numero é um número e texto é uma string, então os tipos são diferentes.

Exibindo uma mensagem de erro

Para exibir uma mensagem de erro quando o chute estiver incorreto, você pode usar a estrutura else. Veja como ficaria o código completo:

alert('Boas-vindas ao jogo do número secreto');
let numeroSecreto = 5;
let chute = prompt('Escolha um número entre 1 e 10');

if (chute == numeroSecreto) {
    console.log("Isso aí! Você descobriu o número secreto (5)");
} else {
    console.log("Ops! Você errou. Tente novamente.");
}

Melhorando com ===

Para garantir que a comparação seja feita corretamente, é recomendável usar ===:

alert('Boas-vindas ao jogo do número secreto');
let numeroSecreto = 5;
let chute = prompt('Escolha um número entre 1 e 10');

// Convertendo o valor do chute para número
chute = Number(chute);

if (chute === numeroSecreto) {
    console.log("Isso aí! Você descobriu o número secreto (5)");
} else {
    console.log("Ops! Você errou. Tente novamente.");
}

Ao usar ===, você garante que a comparação será feita tanto pelo valor quanto pelo tipo, evitando possíveis erros de lógica.

Espero ter ajudado e bons estudos!

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