21 de abril de 2010

Sou programador há mais de 10 anos e como aprendi tudo por conta, algumas teorias passaram em branco, já que sempre procurei aprender apenas aquilo que precisei. Como é o caso do meu entendimento de operadores lógicos, caindo direto ao ponto:

  • OR: a expressão será verdadeira se qualquer um dos operandos forem verdadeiros, e falsa caso os dois operandos sejam falsos.
  • AND: a expressão será verdadeira se e somente se os dois operandos forem verdadeiros, caso contrário será falsa.

Com a leitura do Ruby by Matz entendi o porquê de tal lógica (o livro explica em detalhes toda a teoria). Vamos assumir as seguintes expressões:

a || b                 # "a or b"
a && b                 # "a and b"
  • OR: Se a for verdadeiro, a expressão imediatamente retorna a e ignora o b. Se a for falsa, retorna b.
  • AND: Se a for verdadeiro, a expressão imediatamente retorna b e ignora a. Se a for falsa, a expressão imediatamente retorna a e ignora b.

Exemplos

O seguinte código explora todas as possíveis opções seguindo a teoria.

# OR
a = true
b = true

# Se a for verdadeiro, a expressão imediatamente retorna a e ignora o b.
a || b         # => a, true

# Se a for falsa, retorna b.
a = false
a || b         # => b, true

# Se a for falsa, retorna b, que também possui um resultado falso.
b = false
a || b         # => b, false

# AND
a = true
b = true

# Se a for verdadeiro, a expressão imediatamente retorna b e ignora a.
a && b         # => b, true

# Se a for verdadeiro, a expressão imediatamente retorna b (que possui um resultado falso) e ignora a.
a = true
b = false
a && b         # => b, false

# Se a for falsa, a expressão imediatamente retorna a e ignora b.
a = false
b = true
a && b         # => a, false

# Se a for falsa, a expressão imediatamente retorna a e ignora b.
a = false
b = false
a && b         # => a, false

Mapa mental

Teoria dos Operadores Lógicos

Clique para ampliar

Espero que também tenha lhe sido claro.


2 Comments

Deixe uma resposta

Nome Obrigatório:

Email Obrigatório:

Website

Comentário Obrigatório:

RSS
Livros de Ruby e Rails no Submarino Livros de Ruby e Rails na Amazon