Expresiones booleanas (Visual Basic)
Una expresión booleana es una expresión que se evalúa como un valor del tipo de datos booleano: True
o False
. Boolean
las expresiones pueden adoptar varias formas. La más sencilla es la comparación directa del valor de una Boolean
variable con un Boolean
literal, como se muestra en el ejemplo siguiente.
If newCustomer = True Then
' Insert code to execute if newCustomer = True.
Else
' Insert code to execute if newCustomer = False.
End If
Dos significados del = operador
Observa que la instrucción newCustomer = True
de asignación tiene el mismo aspecto que la expresión en el ejemplo anterior, pero realiza una función diferente y se usa de forma diferente. En el ejemplo anterior, la expresión newCustomer = True
representa un valor booleano y el =
signo se interpreta como un operador de comparación. En una instrucción independiente, el =
signo se interpreta como un operador de asignación y asigna el valor de la derecha a la variable de la izquierda. Esto se ilustra en el siguiente ejemplo:
If newCustomer = True Then
newCustomer = False
End If
Para obtener más información, consulta Comparaciones e instrucciones de valores.
Operadores de comparación
Los operadores de comparación como =
, <
, >
, <>
, <=
y >=
generan expresiones booleanas comparando la expresión en el lado izquierdo del operador con la expresión del lado derecho del operador y evaluando el resultado como True
o False
. Esto se ilustra en el siguiente ejemplo:
42 < 81
Dado que 42 es menor que 81, la expresión booleana del ejemplo anterior se evalúa como True
. Para obtener más información sobre este tipo de expresión, consulta Comparaciones de valores.
Operadores de comparación combinados con operadores lógicos
Las expresiones de comparación se pueden combinar mediante operadores lógicos para generar expresiones booleanas más complejas. En el ejemplo siguiente se muestra el uso de operadores de comparación junto con un operador lógico.
x > y And x < 1000
En el ejemplo anterior, el valor de la expresión general depende de los valores de las expresiones de cada lado del And
operador. Si ambas expresiones son True
, la expresión general se evalúa como True
. Si alguna de las expresiones es False
, la expresión completa se evalúa como False
.
Operadores de cortocircuito
Los operadores lógicos AndAlso
y OrElse
el comportamiento de exposición conocidos como cortocircuito. Un operador de cortocircuito evalúa primero el operando izquierdo. Si el operando izquierdo determina el valor de toda la expresión, la ejecución del programa continúa sin evaluar la expresión derecha. Esto se ilustra en el siguiente ejemplo:
If 45 < 12 AndAlso testFunction(3) = 81 Then
' Add code to continue execution.
End If
En el ejemplo anterior, el operador evalúa la expresión izquierda, 45 < 12
. Dado que la expresión izquierda se evalúa como False
, toda la expresión lógica debe evaluarse como False
. Por lo tanto, la ejecución del programa omite la ejecución del código dentro del If
bloque sin evaluar la expresión correcta, testFunction(3)
. En este ejemplo no se llama testFunction()
porque la expresión izquierda falsifica toda la expresión.
Del mismo modo, si la expresión izquierda de una expresión lógica que usa OrElse
se evalúa como True
, la ejecución continúa con la siguiente línea de código sin evaluar la expresión derecha, ya que la expresión izquierda ya ha validado toda la expresión.
Comparación con operadores que no son de cortocircuito
Por el contrario, ambos lados del operador lógico se evalúan cuando se usan los operadores lógicos And
y Or
. Esto se ilustra en el siguiente ejemplo:
If 45 < 12 And testFunction(3) = 81 Then
' Add code to continue execution.
End If
En el ejemplo anterior se llama a testFunction()
aunque la expresión izquierda se evalúe como False
.
Expresiones entre paréntesis
Puedes usar paréntesis para controlar el orden de evaluación de expresiones booleanas. Las expresiones entre paréntesis se evalúan primero. Para varios niveles de anidamiento, se concede prioridad a las expresiones anidadas más profundamente. Entre paréntesis, la evaluación continúa según las reglas de precedencia del operador. Para obtener más información, consulta Prioridad de operadores en Visual Basic.