Precedência de operadores em Visual Basic

Quando várias operações ocorrem em uma expressão, cada parte é avaliada e resolvida em uma ordem predeterminado chamado precedência de operadores.

regras de precedência

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

  • Operadores de concatenação de cálculos e têm a ordem de precedência descrito na seção, e todos têm precedência maior do que a comparação, lógica, e operadores bit a bit.

  • Todos os operadores de comparação têm precedência igual, e todos têm precedência maior do que os operadores lógicos e bit a bit, mas uma menor precedência de operadores de concatenação de cálculos e.

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

  • Os operadores com precedência igual são avaliados esquerda para a direita na ordem em que aparecem na expressão.

Ordem de precedência

Os operadores são avaliados na seguinte ordem de prioridade:

fw84t893.collapse_all(pt-br,VS.110).gifespere o operador

Await

fw84t893.collapse_all(pt-br,VS.110).gifAritméticas e operadores de concatenação

exponenciação (^)

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

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

Divisão de inteiros (\)

Módulo aritmético (Mod)

adição e subtração (+, –)

Concatenação de cadeia de caracteres (&)

Deslocamento aritmético de bits (<<, >>)

fw84t893.collapse_all(pt-br,VS.110).gifOperadores de Comparação

todos os operadores de comparação (=, <>, <, <=, >, >=, Is, IsNot, Like, TypeOf…Is)

fw84t893.collapse_all(pt-br,VS.110).gifoperadores lógicos e bit a bit

negação (Not)

Conjunção (And, AndAlso)

disjunção inclusiva (Or, OrElse)

disjunção exclusiva (Xor)

fw84t893.collapse_all(pt-br,VS.110).gifComentários

O operador de = só é o operador de comparação de igualdade, não o operador de atribuição.

O operador de concatenação de cadeia de caracteres (&) não é um operador aritmética, mas a precedência que é agrupada com os operadores aritméticos.

Operadores de Is e de IsNot estão operadores de comparação de referência de objeto.Não comparam valores de dois objetos; verificação somente para determinar se duas variáveis de objeto referem-se à mesma instância de objeto.

Associatividade

Quando os operadores de precedência igual aparecem juntos em uma expressão por exemplo, multiplicação e divisão, o compilador avalia cada operação como encontrar à esquerda para a direita.O exemplo a seguir ilustra isto:

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 divisão 96 / 8 que resulta em (12) e então a divisão 12 / 4, que resulta em três.Porque o compilador avalia as operações para n1 da esquerda para a direita, a avaliação é a mesma ordem quando o é indicado explicitamente para n2.n1 e n2 têm um resultado de três.Por outro lado, n3 tem um resultado de 48, porque os parênteses força o compilador para avaliar primeiro 8 / 4 .

Devido a esse comportamento, os operadores seriam à esquerda associativos em Visual Basic.

Substituindo precedência e o Associatividade

você pode usar parênteses para forçar algumas partes de uma expressão a ser avaliada antes de outro.Isso pode substituir a ordem de precedência e o associatividade esquerdo.Visual Basic sempre executa operações que são colocados entre parênteses antes de essas fora. Em o entanto, dentro dos parênteses, mantém precedência e o associatividade comuns, a menos que você use parênteses dentro dos parênteses.O exemplo a seguir ilustra isto:

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)

É o operador (Visual Basic)

Operador IsNot (Visual Basic)

Como o operador (Visual Basic)

Operador TypeOf (Visual Basic)

Aguardar o operador (Visual Basic)

Operadores listados pela funcionalidade (Visual Basic)

Conceitos

Operadores e expressões em Visual Basic