O que é lógica booleana?

Prévia grátis 5 min de leitura

A linguagem das decisões

Toda vez que seu código toma uma decisão, ele usa lógica Booleana: um sistema onde tudo é reduzido a dois valores: verdadeiro ou falso.

A lógica Booleana leva o nome de George Boole (1815–1864), um matemático inglês que formalizou as regras do raciocínio lógico em álgebra. Seu trabalho se tornou a fundação de todo computador digital já construído.

Todo if, todo while, todo filtro de consulta ao banco: todos funcionam com lógica Booleana.


Apenas dois valores

Na lógica Booleana, não existe talvez. Não existe "mais ou menos." Não existe 0.5. Existem dois valores:

Valor Significado Em Ruby
true Sim, ligado, 1 true
false Não, desligado, 0 false

Um detalhe do Ruby importa cedo: numa condição, só false e nil contam como falso. Todo o resto é truthy, inclusive 0 e "". Essa natureza binária é o que torna computadores possíveis. No nível do hardware, um transistor está ligado (eletricidade flui) ou desligado (não flui). A lógica Booleana mapeia perfeitamente para essa realidade física.


Proposições

Uma proposição é qualquer afirmação que é verdadeira ou falsa: nunca ambas, nunca nenhuma.

# Estas SÃO proposições (têm valor de verdade)
"Ruby é uma linguagem de programação"     → verdadeiro
"5 é maior que 10"                         → falso
"O usuário está logado"                    → verdadeiro ou falso

# Estas NÃO são proposições (sem valor de verdade)
"Que horas são?"                           → pergunta, não afirmação
"Feche a porta"                            → comando, não afirmação
"Esta afirmação é falsa"                   → paradoxo, sem valor definido

Na programação, proposições se tornam expressões que avaliam para verdadeiro ou falso:

user.admin?            # proposição: o usuário é admin?
age >= 18              # proposição: a idade é pelo menos 18?
cart.empty?            # proposição: o carrinho está vazio?

As três operações fundamentais

A lógica Booleana tem três operações básicas. Toda expressão lógica já escrita (não importa quão complexa) é construída a partir de combinações dessas três:

Operação Símbolo Ruby Significado
AND ∧ && Ambos devem ser verdadeiros
OR ∨ || Pelo menos um deve ser verdadeiro
NOT ¬ ! Inverte verdadeiro para falso e vice-versa

Pense nelas como os "átomos" da lógica. Assim como toda matéria é construída de átomos, todas as decisões lógicas são construídas de AND, OR e NOT.

# AND: ambas as condições devem ser verdadeiras
user.admin? && user.active?

# OR: pelo menos uma condição deve ser verdadeira
user.admin? || user.moderator?

# NOT: inverte a condição
!user.banned?

Lógica booleana no dia a dia

Você usa lógica Booleana todos os dias sem perceber:

Decisão do Dia a Dia Expressão Booleana
"Vou sair se estiver ensolarado E quente" ensolarado && quente
"Vou de ônibus OU de trem" onibus || trem
"Vou se NÃO estiver chovendo" !chovendo
"Preciso de passaporte E (visto OU cidadania)" passaporte && (visto || cidadania)

Note que o último exemplo usa parênteses para agrupar operações: assim como na matemática. Exploraremos precedência de operadores em uma aula futura.


Por que lógica booleana importa para desenvolvedores Rails

Lógica Booleana não é apenas teoria: é a espinha dorsal de toda aplicação Rails:

Autenticação e autorização

# Este usuário pode editar este post?
user.admin? || (user == post.author && !post.locked?)

Consultas ao banco de dados

# Encontrar usuários ativos e premium
User.where(active: true, premium: true)
# SQL: WHERE active = TRUE AND premium = TRUE

Validações

# Validar presença apenas se publicado
validates :body, presence: true, if: -> { published? && !draft? }

Fluxo de controle

if current_user && current_user.can?(:manage, @course)
  render :edit
else
  redirect_to root_path
end

Dominar lógica Booleana significa escrever condições mais limpas, queries melhores e menos bugs.


O legado de George Boole

Boole publicou As Leis do Pensamento em 1854: mais de 80 anos antes do primeiro computador eletrônico. Ele mostrou que o raciocínio lógico podia ser expresso como equações matemáticas.

Décadas depois, Claude Shannon (1937) percebeu que a álgebra de Boole podia ser implementada com interruptores elétricos. Essa percepção (de que lógica equivale a circuitos) é a fundação de todo dispositivo digital que você usa hoje.

flowchart TB
  A["Álgebra de Boole (1854)"] --> B["Circuitos de Shannon (1937)"] --> C["Transistores (1947)"] --> D["Todo computador, celular e servidor rodando sua aplicação Rails"]

Resumo

Conceito Definição
Lógica Booleana Um sistema com dois valores: verdadeiro e falso
Proposição Uma afirmação que é verdadeira ou falsa
AND (∧) Ambos operandos devem ser verdadeiros
OR (∨) Pelo menos um operando deve ser verdadeiro
NOT (¬) Inverte o valor de verdade
George Boole Matemático que formalizou lógica como álgebra (1854)
Claude Shannon Provou que álgebra Booleana mapeia para circuitos elétricos (1937)
Aula 1 de 7 · grátis

Continue com a aula 2

O operador AND

Explica a tabela verdade do AND, && contra and, o curto-circuito e padrões com AND no Rails.

Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.

Digite para buscar...