Continuando o post anterior sobre operadores…
Operadores Lógicos
Os operadores lógicos são utilizados em expressões booleanas (lógicas) e podem retornar verdadeiro (True) ou falso (False). Os mais comumente usados são:
And (E): o operador And analisa dois valores lógicos, retornando verdadeiro apenas quando ambos são verdadeiros. Ex.:
'Retorna True, pois 10 é maior que 5 E 4 é maior que 1. Response.Write((10>5) And (4>1))
A tabela-verdade para o And é a seguinte:
| A | B | A AND B |
| F | F | F |
| V | F | F |
| F | V | F |
| V | V | V |
Analogia – imagine as seguintes proposições:
- A: tem quatro patas;
- B: mia;
- C: é um gato.
Podemos então dizer que a proposição C é verdadeira se as proposições A e B forem verdadeiras. Se tem quatro patas mas não mia, ou mia mas não tem quatro patas, não podemos dizer que é um gato. Logo, “A And B” é verdadeiro apenas se A for verdadeiro e B for verdadeiro. Portanto, podemos dizer que “C = A And B”.
Or (Ou): o operador Or analisa dois valores lógicos, retornado falso apenas quando ambos são falsos. Ex.:
'Retorna True, pois 3 é maior que 0. Basta que uma das condições seja verdadeira para que o resultado seja verdadeiro. Response.Write((0>2) Or (3>0))
A tabela-verdade para o Or é a seguinte:
| A | B | A OR B |
| F | F | F |
| V | F | V |
| F | V | V |
| V | V | V |
Analogia – imagine que Samuel é flamenguista e anti-corinthiano. Agora imagine as seguintes proposições:
- A: Flamengo classificado para a Libertadores da América;
- B: Corinthians rebaixado;
- C: Samuel feliz.
Samuel ficaria feliz se A ou B fossem proposições verdadeiras. Ficaria ainda muito feliz se ambas fossem verdadeiras. Logo, “C = A Or B”, pois não é imprescindível que A e B sejam ambas verdadeiras para que C o seja.
Not (Não): o operador Not é um operador unário (ao contrário dos anteriores, que são binários), o que significa que ele age sobre um único valor. O Not retorna o contrário do valor analisado. Ex.:
'Retorna False, pois 3 é maior que 0. Response.Write(Not(3>0))
A tabela-verdade para o Not é a seguinte:
| A | NOT A |
| V | F |
| F | V |
Não precisa nem de analogia, não é?
Os demais operadores lógicos não são tão óbvios:
Xor (Ou exclusivo): o operador Xor analisa dois valores lógicos, retornado falso apenas quando ambos são equivalentes. Ex.:
'Retorna False, pois ambas as condições são verdadeiras. Response.Write((10>7) Xor (2>1))
A tabela-verdade para o Xor é a seguinte:
| A | B | A XOR B |
| F | F | F |
| V | F | V |
| F | V | V |
| V | V | F |
Analogia – imagine que Clautevânio possui duas namoradas (uma não sabe da outra). Vai haver uma grande festa em Coruripe e Clautevânio pretende ir, mas apenas se uma de suas namoradas for. Vamos analisar as proposições:
- A: Namorada nº 1 vai à festa;
- B: Namorada nº 2 vai à festa;
- C: Clautevânio vai à festa.
Quando é que a proposição C vai ser verdadeira? Ora, quando A ou B forem verdadeiras… mas, espere! Se A e B forem verdadeiras, Clautevânio não irá à festa, para não haver confusão. Essa é a diferença do Ou para o Ou exclusivo. Se A e B forem verdadeiras, o resultado para o Ou exclusivo é falso. Logo, “C = A Xor B” (e não “C= A Or B”).
Eqv (Equivale a): o operador Eqv analisa dois valores lógicos e retorna verdadeiro quando ambos são equivalentes. Justamente o oposto do Xor. Ex.:
'Retorna True, pois ambas as condições são verdadeiras. Response.Write((10>7) Eqv (2>1))
A tabela-verdade para o Eqv é a seguinte:
| A | B | A EQV B |
| F | F | V |
| V | F | F |
| F | V | F |
| V | V | V |
Também não creio que seja necessário colocar uma analogia…
Imp (Implica em): o operador Imp analisa dois valores lógicos e retorna falso apenas quando o primeiro é verdadeiro e o segundo é falso. Ex.:
'Retorna False, pois a primeira condição é verdadeira, enquanto que a segunda não é. Response.Write((0<1) Eqv (2>11))
A tabela-verdade para o Imp é a seguinte:
| A | B | A IMP B |
| V | V | V |
| V | F | F |
| F | V | V |
| F | F | V |
De acordo com a Wikipedia, “na lógica e na matemática, a implicação, ou condicional é a indicação do tipo SE… ENTÃO, indicando que uma condição deve ser satisfeita necessariamente para que a outra seja verdadeira”.
Analogia – imagine as seguintes proposições:
- A: chove;
- B: jardim fica molhado.
A Imp B equivale a dizer que se A é verdadeira, B tem que o ser. Ou seja, se afirmo que “se chove, o jardim fica molhado”, sempre que chover, o jardim ficará molhado. Mas não posso concluir a partir daí que se o jardim ficar molhado é porque choveu… de repente foi só alguém que molhou as plantas. Então se a proposição A (chove) for falsa, não podemos afirmar nada sobre B (jardim fica molhado). Daí, apenas uma situação resulta numa resposta falsa: quando chover e o jardim não ficar molhado, pois isso contraria o que afirmei anteriormente. Complicado?
Operadores de Comparação
Estes operadores são normalmente utilizados para a formulação de uma condição. São eles:
= (igual)
<> (diferente)
> (maior que)
< (menor que)
>= (maior ou igual)
<= (menor ou igual)
Não preciso dizer mais nada, não é? Apenas tenham cuidado para não usar erroneamente o “==” do PHP e Javascript aqui. No VBScript, igual é apenas um. Para atribuir valor ou comparar.
27.11.2007 às 20:24 |
[...] mais complexo, utilizando mais de uma condição, é só utilizar os operadores relacionais, vistos nesta aula, além de utilizar adequadamente os parênteses. [...]
21.06.2008 às 09:32 |
é ate q da pro gasto
isso ai de vocês.