Curso Completo de Lógica de Programação: Operadores Lógicos
Um estudo técnico aprofundado sobre operadores booleanos, precedência, curto-circuito e aplicações práticas em código.
1. Fundamentos da lógica de programação
Neste primeiro tópico, eu apresento os fundamentos da lógica de programação. A lógica parte de dois componentes básicos: proposições e operadores. Proposições são afirmações que podem ser verdadeiras ou falsas, e os operadores lógicos permitem combiná-las para formar expressões booleanas usadas em condições, laços de repetição e validações de entradas.
Conceitos-chave:
- Booleanos: verdadeiro (true) e falso (false).
- Expressões booleanas: combinações com operadores lógicos.
- Precedência de operadores: NOT > AND > OR.
2. Operadores lógicos básicos
Aqui eu apresento os operadores lógicos básicos. Em muitas linguagens, os símbolos são: NOT (!), AND (&&), OR (||). A tabela verdade ajuda a entender o comportamento em diferentes cenários.
- Not: inverte o valor lógico. Ex.: !A resulta em true se A for false.
- And: exige que ambas as proposições sejam verdadeiras para retornar true.
- Or: retorna true se pelo menos uma proposição for verdadeira.
// Tabela verdade (simplificada)
A | B | A AND B
T | T | T
T | F | F
F | T | F
F | F | F
3. Curto-circuito e avaliação preguiçosa
Ao longo da minha prática, observo que os operadores lógicos costumam usar curto-circuito. Isso significa que a expressão é avaliada até o ponto em que o resultado fica conhecido, sem precisar checar o restante. Esse comportamento é essencial para evitar avaliações desnecessárias e para validações seguras.
- AND (A && B): avalia A; se A for falso, retorna A; caso contrário, avalia B.
- OR (A || B): avalia A; se A for verdadeiro, retorna A; caso contrário, avalia B.
// Exemplo de curto-circuito em JavaScript
const a = false;
const b = true;
console.log(a && b); // false (não avalia b)
console.log(a || b); // true (avalía b apenas no segundo caso)
4. Aplicações práticas
Expressões com operadores lógicos aparecem em validações de entradas, condicionais, filtragens e controle de fluxo. Abaixo apresento exemplos comuns com JavaScript, para estruturar condições de forma legível e segura.
- Validação de idade mínima e status ativo:
// Validação de acesso
const idade = 21;
const usuarioAtivo = true;
if (idade >= 18 && usuarioAtivo) {
console.log('Acesso concedido');
} else {
console.log('Acesso negado');
}
- Filtragem de dados em arrays (curto-circuito com filter):
// Filtrar itens ativos e válidos
const itens = [
{ id: 1, ativo: true, valido: true },
{ id: 2, ativo: true, valido: false },
{ id: 3, ativo: false, valido: true },
];
const selecionados = itens.filter(i => i.ativo && i.valido);
console.log(selecionados);
Leia também
Para ampliar o entendimento, recomendo explorar outros conteúdos que abordam estruturas condicionais, organização lógica de código e melhores práticas de validação de dados.
Sou Apaixonado pela programação e estou trilhando o caminho de ter cada diz mais conhecimento e trazer toda minha experiência vinda do Design para a programação resultando em layouts incríveis e idéias inovadoras! Conecte-se Comigo!