Operadores De Visual Basic

 

Prioridad de operador en Visual Basic

Visual Studio 2005

Reglas de prioridad


Cuando las expresiones contienen operadores de más de una categoría, dichos operadores se evalúan de acuerdo con las siguientes reglas:

  • Los operadores aritméticos y de concatenación tienen el orden de prioridad que se describe a continuación; todos ellos tienen mayor prioridad que los operadores lógicos, de comparación y bit a bit.
  • Todos los operadores de comparación tienen la misma prioridad; todos ellos tienen mayor prioridad que los operadores lógicos y los operadores bit a bit, pero menor prioridad que los operadores de concatenación y los operadores aritméticos.
  • Los operadores lógicos y los operadores bit a bit tienen el orden de prioridad que se describe a continuación; todos ellos tienen menor prioridad que los operadores aritméticos, de concatenación y de comparación.
  • Los operadores con la misma prioridad se evalúan de izquierda a derecha en el orden en que aparecen en la expresión.

Orden de prioridad


Los operadores se evalúan en el siguiente orden de prioridad:

Operadores de concatenación y aritméticos

Exponenciación (^)

Identidad y negación unarios (+)

Multiplicación y división de punto flotante (*/)

División de número entero (\)

Módulo aritmético (Mod)

Suma y resta (+), concatenación de cadenas (+)

Concatenación de cadenas (&)

Desplazamiento de bits aritmético (<<>>)

Operadores de comparación

Todos los operadores de comparación (=<><<=>>=IsIsNotLikeTypeOfIs)

Operadores lógicos y bit a bit

Negación (Not)

Conjunción (AndAndAlso)

Disyunción inclusiva (OrOrElse)

Disyunción exclusiva (Xor)

El operador = sólo es el operador de comparación de igualdad, no el operador de asignación.

El operador de concatenación de cadenas (&) no es un operador aritmético, pero en cuanto a prioridad, se agrupa con los operadores aritméticos.

Los operadores Is e IsNot son los operadores de comparación de referencia de objeto. No comparan los valores de dos objetos; sólo comprueban y determinan si dos variables de objeto hacen referencia la misma instancia del objeto.

Asociatividad


Cuando aparecen operadores de la misma prioridad juntos en una expresión, por ejemplo, multiplicación y división, el compilador evalúa cada operación de izquierda a derecha. Esto se ilustra en el siguiente ejemplo:

Dim n1 As Integer = 96 / 8 / 4

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

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

La primera expresión evalúa la división 96 / 8 (que da como resultado 12) y, a continuación, la división 12 / 4, que da como resultado 3. Dado que el compilador evalúa las operaciones de n1 de izquierda a derecha, la evaluación es exactamente la misma cuando ese orden está indicado de forma explícita en n2. Tanto n1como n2 arrojan un resultado de 3. n3, en cambio, arroja un resultado de 48 porque el paréntesis obliga al compilador a evaluar primero 8 / 4.

Debido a este comportamiento, se dice que los operadores son asociativos por la izquierda en Visual Basic.

Modificación de la prioridad y la asociatividad


Puede utilizar paréntesis para hacer que determinadas partes de una expresión se evalúen antes que otras. Esto puede modificar el orden de prioridad y asociatividad por la izquierda. Visual Basic lleva a cabo siempre antes las operaciones que están entre paréntesis que las operaciones que están fuera de los paréntesis. Dentro del paréntesis, sin embargo, mantiene el orden de prioridad y asociatividad normal, a menos que se utilicen paréntesis dentro del paréntesis. Esto se ilustra en el siguiente ejemplo:

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.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: