variable - ¿Cómo se evalúa una declaración O en VBA?
variables publicas y privadas en visual basic (1)
Aquí hay algunos resultados de prueba:
Public Sub DoTesting()
'' Displays "Test1" followed by "Test2", so they''re evaluated in order.
'' Also, both expressions are evaluated even though Test1() is False.
If Test1() And Test2() Then
End If
'' Displays "Test2" followed by "Test1", so they''re evaluated in order.
'' Also, both expressions are evaluated even though Test2() is True.
If Test2() Or Test1() Then
End If
'' Displays "Test1" only. Test2() is not evaluated.
If Test1() Then If Test2() Then Debug.Print ""
End Sub
Public Function Test1() As Boolean
MsgBox "Test1"
Test1 = False
End Function
Public Function Test2() As Boolean
MsgBox "Test2"
Test2 = True
End Function
Entonces, ambas expresiones en un Or
o un And
siempre se evalúan, en orden, independientemente del resultado. Puede usar If ... Then If ... Then
para lograr un cortocircuito en línea simple.
Me pregunto cómo funciona un enunciado condicional Or
en VBA / VB6. Básicamente, si tenemos If A Or B Then
, ¿en qué orden se evalúan las expresiones booleanas? Si A es verdadero, ¿B también se evalúa?