Compartilhar via


Precedência de operadores no Visual Basic

Quando várias operações ocorrem em uma expressão, cada parte é avaliado e resolvido em uma ordem predeterminada chamada a precedência deoperador.

Regras de precedência

Quando as expressões contêm operadores de mais de uma categoria, elas são avaliadas de acordo com as seguintes regras:

  • Os operadores aritméticos e concatenação tem a ordem de precedência, descrita na seção a seguir e todos têm precedência maior do que a comparação, lógicos e operadores bit a bit.

  • Tudo operadores de comparação possuem a mesma precedência e tudo o que tem precedência maior do que os operadores lógicos e bit a bit, mas menor precedência que os operadores aritméticos e concatenação.

  • Os operadores lógicos e bit a bit tem a ordem de precedência, descrita na seção a seguir e todos têm menor precedência que a aritmética, concatenação e operadores de comparação.

  • Operadores com a mesma precedência são avaliados da esquerda para a direita na ordem em que aparecem na expressão.

Ordem de precedência

Operadores são avaliadas na seguinte ordem de precedência:

Operadores de concatenação e aritmética

Exponenciação (^)

Unário identidade e a negação (+, –)

Multiplicação e flutuante-ponto de divisão (*, /)

Divisão inteira (\)

Módulo aritmético (Mod)

Adição e subtração (+, –), concatenação de seqüência de caracteres (+)

Concatenação de seqüência de caracteres (&)

Aritmética bit deslocar (<<, >>)

Comparison Operators

Tudo comparison operators (=, <>, <, <=, >, >=, Is, IsNot, Like, TypeOf...Is)

Operadores bit a bit e lógicas

Negação (Not)

Conjunto (And, AndAlso)

Inclusive disjunção (Or, OrElse)

DisjunçãoExclusivo (Xor)

Comments

O = operador é apenas a comparação de igualdade operador, não a atribuição de operador.

O operador de concatenação de seqüência de caracteres (&) não é um operadorde aritmética, mas na precedência agrupado com os operadores aritméticos.

O Is e IsNot operadores são operadores de comparação do objeto referência. Eles não comparar os valores dos dois objetos; eles verificam apenas para determinar se duas variáveis de objeto referência para a mesma instância do objeto .

Associatividade

Quando operadores de mesma precedência aparecem juntos em uma expressão, por exemplo, multiplicação e divisão, o compilador avalia cada operação, como ele encontra da esquerda para a direita. The following example illustrates this.

Dim n1 As Integer = 96 / 8 / 4
Dim n2 As Integer = (96 / 8) / 4
Dim n3 As Integer = 96 / (8 / 4)

A primeira expressão é avaliada a divisão de 96 / 8 (que resulta em 12) e, em seguida, a divisão de 12 / 4, que resulta em três. Porque o compilador avalia as operações para n1 da esquerda para a direita, a avaliação é o mesmo quando a ordem é explicitamente indicada para n2. Ambos n1 e n2 tem um resultado de três. Por outro lado, n3 tem um resultado de 48, porque os parênteses obrigam o compilador para avaliar 8 / 4 primeiro.

Devido esse comportamento, operadores são considerados esquerda associativa na Visual Basic.

Substituição de precedência e associatividade

Você pode usar parênteses para forçar algumas partes de uma expressão a ser avaliada antes de outros. Isso pode substituir a ordem de precedência e a associatividade à esquerda. Visual Basicsempre executa operações que são colocadas entre parênteses antes daquelas fora. No entanto, entre parênteses, ele mantém comum precedência e associatividade de operadores, a menos que você usar parênteses dentro dos parênteses. The following example illustrates this.

Dim a, b, c, d, e, f, g As Double
a = 8.0
b = 3.0
c = 4.0
d = 2.0
e = 1.0
f = a - b + c / d * e
' The preceding line sets f to 7.0. Because of natural operator 
' precedence and associativity, it is exactly equivalent to the 
' following line.
f = (a - b) + ((c / d) * e)
' The following line overrides the natural operator precedence 
' and left associativity.
g = (a - (b + c)) / (d * e)
' The preceding line sets g to 0.5.

Consulte também

Referência

Operador = (Visual Basic)

Operador Is (Visual Basic)

Operador IsNot (Visual Basic)

Operador Like (Visual Basic)

Operador TypeOf (Visual Basic)

Operadores listados por Funcionalidade (Visual Basic)

Conceitos

Operadores e expressões em Visual Basic