(Parte 4 de 5)

A tabela abaixo, nos mostra o compotamento do operador +, dependendo do tipo de dados:

Se os valores a serem somados forem:O comportamento do operador será: Numéricos Adição. Strings Concatenação String e NuméricoAdição

Capítulo VI – Operadores

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 34

Vamos considerar uma situação onde a adição entre dois números é pedida. Siga o exemplo:

Você pode perceber por este exemplo que sem um entendimento apropriado sobre o tipo de dados Variant e o comportamento do operador de adição, o resultado pode não ser o esperado. No exemplo acima, as variáveis são explicitamente declaradas e valor1 recebe o 1 (numérico), assumindo o subtipo Integer, e a variável valor2 recebe “3” (string), assumindo o subtipo String. Todas as variáveis declaradas são do tipo Variant. Entretanto, o VBScript atribui um subtipo dependendo do valor atribuído a variável.

Nas linhas abaixo, a variável resultado receberá o valor 4. Pois, pela regra, quando somamos um valor numérico e uma string, a soma numérica entre eles é efetuada. Resultado = valor1 + valor2 Resultado = valor2 + valor1

Já nesta linha, o resultado é diferente. Pois os valores participantes da adição são valores numéricos, então será efetuada a concatenação das strings. A variável resultado conterá o valor (string) “3”. Resultado = valor2 + valor2

Na próxima linha, estamos somando dois valores numéricos, pois o subtipo da variável valor1 é Integer. O valor retornado para a variável resultado será 2. Resultado = valor1 + valor1

Mas, e se você precisasse que o resultado da linha Resultado = valor2 + valor2 fosse numérico? Para isso, utilize as funções de conversão de tipo. Esta linha poderia ser reescrita da seguinte maneira:

Resultado = CInt(valor2) + CInt(valor2)

A função CInt é utilizada para converter uma variável para Inteiro. E a variável resultado receberia o valor numérico 6.

O mesmo vale para a linha Resultado = valor1 + valor1. Se o resultado a ser retornado precisasse ser uma concatenação de strings e não uma soma numérica, a linha seria reescrita da seguinte maneira:

Resultado = CStr(valor1) + CStr(valor1)

A função CStr é utilizada para converter uma variável para String. E a variável resultado receberia a string 2.

<% Dim valor1, valor2 Dim resultado valor1 = 1 valor2 = “3”

Resultado = valor1 + valor2‘Retorna o resultado igual a 4 Resultado = valor2 + valor2‘Retorna o resultado igual a 3 Resultado = valor2 + valor1‘Retorna o resultado igual a 4 Resultado = valor1 + valor1‘Retorna o resultado igual a 2 %>

Capítulo VI – Operadores

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 35

Subtração

O operador de subtração (-) é utilizado para efetuar a diferença entre valores numéricos ou para converter um valor numérico positivo em um valor numérico negativo. Para cada uma destas funcionalidades, é preciso uma sintaxe diferente, vejamos quais são:

Resultado = valor1 – valor2 Onde resultado recebe o valor da operação entre as variáveis numéricas valor1 e valor2.

Resultado = -(valor1) Onde valor1 é uma valor numérico.

Multiplicação

O operador de multiplicação (*) é utilizado para retornar o resultado da multiplicação entre valores numéricos.

Sintaxe

Resultado = valor1 * valor2

Onde resultado recebe o valor da operação entre as variáveis numéricas valor1 e valor2. Se ambas as variáveis estiverem com o valor igual a NULL, o valor retornado da operação também será NULL. Se estiverem vazias, o resultado será convertido para 0 (zero).

Divisão

O operador de divisão (/) é utilizado para dividir uma expressão numérica em outra expressão numérica.

Sintaxe

Resultado = valor1 / valor2

Onde Resultado recebe o valor da operação entre as variáveis numéricas valor1 e valor2. As mesmas regras da multiplicação valem para a divisão. Se ambas as variáveis estiverem com o valor igual a NULL, o valor retornado da operação também será NULL. Se estiverem vazias, o resultado será convertido para 0 (zero).

Fique atento para a divisão por 0 (zero). Será o retornado o seguinte erro: Microsoft VBScript runtime error ’800a000b’ Division by zero

Divisão Inteira

O operador da divisão inteira (\) é similar ao da divisão, mas foi especificamente, criado para retornar resultados inteiros apenas.

Capítulo VI – Operadores

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 36

Sintaxe

Resultado = valor1 \ valor2

Onde Resultado recebe o valor da operação entre as variáveis numéricas valor1 e valor2. Estas variáveis são arredondadas e seu subtipo configurados para Byte, Integer ou Long antes da operação. Se ambas as variáveis estiverem com o valor igual a NULL, o valor retornado da operação também será NULL. Se estiverem vazias, o resultado será convertido para 0 (zero).

Exponenciação

O operador de exponenciação () é utilizado para "elevar" um número a outro. Sintaxe resultado = número1número2

Onde resultado recebe o valor retornado da operação efetuada pelas expressões numéricas número1 e número2.

Operadores de Comparação

Os operadores de Comparação analisam o relacionamento entre expressões. Lembre-se que uma expressão pode ser uma combinação de palavras-chaves, operadores, variáveis ou constantes que formam uma string, número ou objeto.

Sintaxe geral

Resultado = Expressão1 (operador) Expressão2

Onde Expressão1 e Expressão2 contem uma expressão qualquer e o operador representa o símbolo de relacionamento entre as expressões (o tipo de comparação).

A tabela abaixo nos mostra os Operadores de comparação utilizados no VBScript:

Operador Símbolo Igualdade = Desigualdade <> Maior que> Menor que< Maior que ou Igual a>= Menor que ou Igual a<= Equivalência de ObjetosIS

Operadores de Comparação dá a você a habilidade para determinar a relação entre expressões. Tradicionalmente, os desenvolvedores esperam que as comparações sejam avaliadas como True (verdadeiro) ou False (falso). Porém, é importante considerar uma terceira possibilidade: NULL. Se a expressão na comparação for NULL, a comparação retornará NULL. È importante manter isto em mente, quando desenvolvemos aplicações lógicas. Os desenvolvedores devem desenvolver uma aplicação que possa responder as três possibilidades de comparação: true, false, NULL.

Capítulo VI – Operadores

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 37

OperadorRetorna True seRetorna False se ...Retorna NULL se ...

A tabela abaixo nos mostra uma série de exemplos de comparações: <Expr1 < Expr2Expr1 >= Expr2Expr1 ou Expr2 = Null

<=Expr1 <= Expr2Expr1 > Expr2Expr1 ou Expr2 = Null >Expr1 > Expr2Expr1 <= Expr2Expr1 ou Expr2 = Null

>=Expr1 >= Expr2Expr1 < Expr2Expr1 ou Expr2 = Null =Expr1 = Expr2Expr1 <> Expr2Expr1 ou Expr2 = Null <>Expr1 <> Expr2Expr1 = Expr2Expr1 ou Expr2 = Null

Os operadores de comparação atuam como os operadores aritméticos, pois alteram seu comportamento dependendo do tipo de dados das variáveis envolvidas. Na tabela baixo temos uma descrição do comportamento dos operadores de comparação:

ExpressõesComportamento

Numéricas Comparação Numérica String Comparação String Uma numérica e outra StringA expressão numérica é menor que a expressão string.

Uma é vazia e outra é numéricaComparação numérica sendo que a expressão vazia é tratada como zero.

Uma é vazia e outra é stringComparação string, sendo que a expressão vazia é tratada com comprimento zero (“ “).

Ambas as expressões são vaziasAs expressões são iguais.

Outro tipo de comparação é a comparação entre objetos. O operador IS é utilizado para fazer esta comparação. A sintaxe a ser utilização está descrita abaixo:

Resultado = objeto1 IS objeto2

Onde Objeto1 e Objeto2 representam objetos e o uso da palavra-chave IS determina um relacionamento entre os objetos.

Quando comparamos objetos, não existe a possibilidade de NULL. O resultado sempre será True ou False. Se os objetos forem iguais, o resultado será igual a True. Se forem diferentes, o resultado retornado será False.

Exemplo

Na primeira linha de comparação (Resultado = Pobjeto is Sobjeto), o valor retornado é True, pois os dois objeto (Pobjeto e Sobjeto) foram criados a partir de um mesmo objeto.

<% Dim Tobjeto, TSObjeto, Resultado

Set Pobjeto = Tobjeto‘Cria o objeto Set Sobjeto = Tobjeto‘Cria o objeto Set TerObjeto = TSObjeto‘Cria o Objeto

Resultado = Pobjeto is Sobjeto‘Compara Resultado = Pobjeto is TerObjeto‘ os Objetos %>

Capítulo VI – Operadores

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 38

Já na segunda linha de comparação (Resultado = Pobjeto is TerObjeto), o valor retornado é False, pois os objetos têm origens diferentes, cada um deles foi criado a partir de objetos diferentes. Operadores Lógicos

Os operadores lógicos ajudam a expandir as funcionalidades dos operadores de comparação. O operador lógico foca o método booleano para determinar se um processo retorna True ou False.

Os operadores lógicos mais utilizados estão listados na tabela abaixo:

Operador Símbolo Conjunção AND Negação NOT Desconjunção OR

Operador NOT

Este operador é utilizado para realizar negação lógica em uma expressão, ou seja, para negar ou inverter um resultado.

Sintaxe

Resultado = NOT (Expressão) Onde Expressão é qualquer expressão. Por exemplo:

Resultados retornado pelo operador NOT:

Expressão Resultado True False False True NULL NULL

Lembre-se que uma variável que contém o valor NULL, representa uma variável com valor inválido. Consequentemente, qualquer operador reproduzirá um resultado NULL. Tenha em mente que um variável com uma string vazia ( “ “), não é igual a NULL. Por exemplo:

<% Dim teste teste = NOT (10 > 30) Response.Write teste %>

Expressão

Variavel = “” Resultado = IsNull(Variavel)‘ Retornará False, pois o conteúdo de variável é uma string vazia. %>

Variavel = NULL Resultado = IsNull(Variavel)‘ Retornará True, pois o conteúdo de variavel é igual a NULL. %>

Capítulo VI – Operadores

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 39

* A função IsNull verifica se o conteúdo de uma variável é igual a NULL. Operador AND

É utilizado para avaliar um conjunto de expressões como se fosse apenas uma comparação. O operador AND apenas retornará True, se e somente se todas as comparações forem verdadeiras.

Sintaxe Resultado = Expressão1 AND Expressão2 Onde Expressão1 e Expressão2 são quaisquer expressão. Por exemplo:

Neste caso, teste receberá o valor False. Pois embora 20 seja menor que 30, 10 não é maior que 30. Então, como o AND apenas retorna True se todas as expressões forem verdadeiras, a variável teste receberá false.

A tabela abaixo nos lista o comportamento do operador AND:

Expressão1 Expressão2 Resultado True True True True False False True NULL NULL False True False False False False False NULL False NULL True NULL NULL False False NULL NULL NULL

Operador OR

Avalia se alguma expressão de uma série de expressões é verdadeira. Sintaxe

Resultado = Expressão1 OR Expressão2 Onde Expressão1 e Expressão2 são quaisquer expressão. Por exemplo:

<% Dim teste teste = (10 > 30) AND (20 < 30) Response.Write teste %>

Expressão

<% Dim teste teste = (10 > 30) OR (20 < 30) Response.Write teste %>

Expressão

Capítulo VI – Operadores

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 40

Neste caso, a variável teste receberá True. Pois uma das expressões acima é verdadeira: 20 < 30.

A tabela abaixo descreve o comportamento do operador OR, dependendo do resultado da expressão:

Expressão1 Expressão2 Resultados True True True True False True True NULL True False True True False False False False NULL NULL NULL True True NULL False NULL NULL NULL NULL

Operadores de Concatenação

Existem dois operadores no VBScript utilizados para “somar” (concatenar) strings. Veja a tabela abaixo:

Operador Símbolo Descrição Concatenação de String&Usado para concatenar Strings.

Operador de Adição e String+Usado para concatenar Strings e Adição Numérica.

Operador &

Utilizado para somar duas cadeias de caracteres (strings). Sintaxe resultado = string1 & string2 Onde string1 e string2 são expressões strings válidas para o VBScript.

O resultado retornado:

<% texto = "Treinamento ASP " & "CCUEC – UNICAMP" Response.Write texto %>

Capítulo VI – Operadores

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 41

Operador +

O operador de Adição também pode ser utilizado para concatenar strings. Porém, não é recomendado que você utilize este operador para este tipo de função, pois sua função principal seria a soma de valores numéricos. A ambiguidade ocorre quando o operador + é utilizado em diferentes subtipos, no caso, string e valores numéricos.

Sintaxe

Resultado = string1 + string2 Onde string1 e string2 são expressões do subtipo string válidas para o Vbscript. Por exemplo:

O resultado retornado é o mesmo que foi retornado quando utilizamos o operador &.

Ordem de Avaliação das Expressões

A avaliação das expressões é baseada nas categorias dos operadores. Operadores aritméticos são os primeiros a serem processados, seguidos pelos operadores de comparação e por fim, pelos operadores lógicos.

<% texto = "Treinamento ASP " + "CCUEC – UNICAMP" Response.Write texto %>

Capítulo VI – Operadores

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 42

Neste capítulo aprendemos que

Resumo

• Os operadores aritméticos aceitos pelo VBScript são: + (Adição), - (Subtração), * (Multiplicação), / (divisão), \ (divisão inteira) e (Exponenciação).

• Os operadores de comparação são: = (igualdade), <> (desigualdade), > (maior que), < (menor que), >= (maior ou igual a), <= (menor ou igual a) e IS para comparação de objetos.

• Os operadores lógicos utilizam o método booleano para determinar se um processo retorna True ou False. Os símbolos dos operadores lógicos são: AND, OR, NOT.

Dicas

• Para prevenir uma concatenação de strings indesejável quando estiver utilizando o operador de adição, utilize as funções de conversão para certificar o tipo correto de dados.

• As concatenações são avaliadas depois dos operadores aritméticos e antes dos operadores de comparação.

Capítulo VII – Comandos Básicos do VBScript

Desenvolvimento de Aplicações para Internet – Plataforma Microsoft Página 43

Neste capítulo, estaremos estudando os comandos para controle do fluxo de uma aplicação. Veremos as estruturas lógicas existentes no VBScript que devem permitir este controle: estruturas lógicas de decisão e repetição. Estruturas lógicas de decisão executam uma determinada condição e, dependendo do teste, retornam o HTML apropriado como resultado. A estrutura de repetição por sua vez, é um processo cíclico, ou seja, repete um determinado conjunto de instruções até que uma condição seja satisfeita.

Estruturas de Decisão

Utilizadas para tomar decisões em sua aplicação. Por exemplo, se a hora for menor que 12:0, retorne um HTML com “Bom dia”, se não, retorne um HTML com “Ola!”. Neste exemplo, você apenas mandou retornar um HTML com um texto para seu usuário porém, você poderia determinar que dependendo do horário, deve ser retornado determinada página, desviar para outra URL, etc. Estruturas como esta são utilizadas para determinar o fluxo da sua aplicação, com elas você pode definir qual página deve ser aberta, determinar o texto a ser escrito para o cliente, estados dos objetos na tela: selecionados, preenchidos, etc.

(Parte 4 de 5)

Comentários