Comparadores e Booleanos
O que vais aprender nesta aula:
- O tipo de dado
Boolean(Verdadeiro ou Falso) - Comparar valores (Maior que, Menor que)
- A diferença crucial entre
==e=== - Como o computador toma decisões baseadas em comparações
🧠 Teoria (com Analogia e Contexto Real)
Até agora, lidámos com números e texto. Mas para o computador tomar decisões, ele precisa de respostas simples: Sim ou Não.
🛑 Analogia do Porteiro da Discoteca
Imagina um segurança à entrada de uma discoteca. Ele faz perguntas e compara a resposta com as regras:
- "A tua idade é maior ou igual a 18?" (
idade >= 18) - "O teu nome está igual ao da lista?" (
nome === "João") - "O teus ténis são diferentes de 'chinelos de praia'?" (
calcado !== "chinelos")
O segurança só tem duas respostas possíveis: true (Entra) ou false (Não entra).
Porque é que isto importa? Sem comparações, o software não teria inteligência. É assim que o login verifica a password, que o jogo sabe se bateste na parede, ou que o banco verifica se tens saldo suficiente.
== (comparação solta) e o === (comparação estrita). A regra de ouro dos profissionais é: Usa sempre === para evitar surpresas!
💻 Prática (Orientada e Progressiva)
Vamos fazer perguntas ao JavaScript. Experimenta na consola:
Exemplo 1: Maior e Menor
let idade = 20;
console.log(idade > 18); // true (20 é maior que 18)
console.log(idade < 10); // false (20 não é menor que 10)
console.log(idade >= 20); // true (20 é maior ou igual a 20)
Exemplo 2: Igualdade Estrita (===)
Verifica se o valor E o tipo são iguais.
let numeroSecreto = 5;
console.log(numeroSecreto === 5); // true (É igual)
console.log(numeroSecreto === 10); // false (Não é igual)
console.log(numeroSecreto !== 5); // false (Não é diferente, ou seja, é igual)
Exemplo 3: O Perigo do == (Apenas para conhecimento)
O == ignora o tipo de dado. Isto pode causar bugs!
console.log(5 == "5"); // true (O quê!? Um número igual a texto?)
console.log(5 === "5"); // false (Muito mais seguro. Número não é texto.)
= (atribuir valor) com === (comparar valor).
let x = 10; (Coloca 10 dentro de x)
x === 10 (Pergunta: x é igual a 10?)
✅ Verificação de Conhecimento
1. Qual é o resultado de 10 >= 10?
2. Porque devemos preferir === em vez de ==?
3. O que devolve a expressão "Ana" !== "ana"?
🧩 Desafio Prático
Verificador de Elegibilidade para Votar
Cria um programa que verifica se uma pessoa pode votar.
No nosso sistema fictício, para votar é preciso ter 18 anos ou mais.
Objetivo:
- Define uma variável
idadeEleitor. - Define uma variável
idadeMinimacom valor 18. - Cria uma variável
podeVotarque guarde o resultado da comparação (true ou false). - Mostra o resultado na consola.
// Testa com idadeEleitor = 16 e depois com 20
Mostrar Solução
let idadeMinima = 18;
let idadeEleitor = 20;
// A comparação devolve true ou false
let podeVotar = idadeEleitor >= idadeMinima;
console.log("Pode votar? " + podeVotar); // Pode votar? true
📌 Explicação: A variável podeVotar é do tipo Boolean. Ela não guarda número nem texto, guarda o estado da verdade daquela condição. Isto será fundamental quando aprendermos os if e else.