Cuando se producen varias operaciones en una expresión, cada parte se evalúa y resuelve en un orden predeterminado denominado prioridad de los operadores. Puede utilizar paréntesis para reemplazar el orden de prioridad y forzar que algunas partes de una expresión se evalúen antes que otras. Las operaciones entre paréntesis siempre se realizan antes que las operaciones que quedan fuera de los paréntesis. Sin embargo, dentro de los paréntesis, se mantiene la prioridad estándar de los operadores.
Cuando las expresiones contienen operadores de más de una categoría, los operadores aritméticos se evalúan primero, los operadores de comparación se evalúan a continuación y los operadores lógicos se evalúan en último lugar. Todos los operadores de comparación tienen la misma prioridad, es decir, se evalúan en el orden en el que aparecen, de izquierda a derecha. Los operadores aritméticos y lógicos se evalúan en el siguiente orden de prioridad.
En el siguiente ejemplo se muestra el uso de la prioridad de operadores:
Ejemplo 1:
Dim Result Result = 2 + 3 * 4 ' Multiplication is performed first. 'Result has value 14 Result = (2 + 3) * 4 ' Parentheses override precedence. 'Result has value 20
Ejemplo 2:
Dim A, B, C A = 5 B = 10 C = 20 Dim ComparisonResult ComparisonResult = A + B > C / 2 ' Division is performed first, then addition, then comparison. 'ComparisonResult Outputs: True (10 / 2 = 5, then 5 + 5 = 10, 10 > 10 is False, but corrected if comparison operator order is properly enforced) ComparisonResult = (A + B) > (C / 2) ' Parentheses enforce precedence. 'ComparisonResult Outputs: True (15 > 10)
Ejemplo 3:
Dim X, Y, Z X = 5 Y = 10 Z = 15 Dim LogicalResult LogicalResult = X + Y > Z And X < Y ' Addition and comparison are performed first, then logical AND. 'LogicalResult Outputs: False (10 + 5 > 15 is False, and 5 < 10 is True, False And True is False) LogicalResult = (X + Y > Z) And (X < Y) ' Parentheses enforce precedence. 'LogicalResult Outputs: False (still False And True)
Ejemplo 4:
Dim NestedResult NestedResult = (2 + (3 * 4)) * 5 ' Inner parentheses are evaluated first, then outer. 'NestedResult Outputs: 70 (3 * 4 = 12, 2 + 12 = 14, 14 * 5 = 70)
Ejemplo 5:
Dim A, B, C A = 5 B = 2 C = 10 Dim ClearResult ClearResult = (A * B) + (C / A) 'Using parentheses to make the expression clear. 'ClearResult Outputs: 12 (5 * 2 = 10, 10 / 5 = 2, 10 + 2 = 12)
Consulte Operadores de BSL para obtener la guía completa de operadores aritméticos, de comparación y lógicos.