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
afor verdadeiro, a expressão imediatamente retornaae ignora ob. Seafor falsa, retornab. - AND: Se
afor verdadeiro, a expressão imediatamente retornabe ignoraa. Seafor falsa, a expressão imediatamente retornaae ignorab.
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
Espero que também tenha lhe sido claro.
2 Comments
Tags: 
Alfred Reinold Baudisch em Ruby, Ruby on Rails, Objective C e desenvolvimento de jogos para iPhone.



Brod, Op Logicos vêm (nostalgia das aulas de eletrônica digital, hehe) das portas lógicas. Olha como é facil visualizar usando tabela verdade:
http://www.inf.ufsc.br/ine5365/portlog.html
é por isso q chamamos true e false de booleans. É tudo Álgebra de Boole.
Obrigado nofxx! Também nunca havia visto por essa abordagem de portas lógicas.