Operadores do VBScript (lógicos e de comparação)

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.

2 Respostas para “Operadores do VBScript (lógicos e de comparação)”

  1. Estruturas condicionais em VBScript « iranrodrigues.com - Aulas de Web Disse:

    [...] mais complexo, utilizando mais de uma condição, é só utilizar os operadores relacionais, vistos nesta aula, além de utilizar adequadamente os parênteses. [...]

  2. deiky Disse:

    é ate q da pro gasto

    isso ai de vocês.

Deixe uma resposta