Booleaanse expressies (Visual Basic)
Een Boole-expressie is een expressie die resulteert in een waarde van het Booleaanse gegevenstype: True
of False
. Boolean
expressies kunnen verschillende vormen aannemen. De eenvoudigste is de directe vergelijking van de waarde van een Boolean
variabele naar een Boolean
letterlijke waarde, zoals wordt weergegeven in het volgende voorbeeld.
If newCustomer = True Then
' Insert code to execute if newCustomer = True.
Else
' Insert code to execute if newCustomer = False.
End If
Twee betekenissen van de =-operator
U ziet dat de toewijzingsinstructie newCustomer = True
er hetzelfde uitziet als de expressie in het vorige voorbeeld, maar dat deze een andere functie uitvoert en anders wordt gebruikt. In het voorgaande voorbeeld vertegenwoordigt de expressie newCustomer = True
een Booleaanse waarde en wordt het =
teken geïnterpreteerd als een vergelijkingsoperator. In een zelfstandige instructie wordt het =
teken geïnterpreteerd als een toewijzingsoperator en wordt de waarde aan de rechterkant aan de variabele aan de linkerkant toegewezen. In het volgende voorbeeld ziet u dit.
If newCustomer = True Then
newCustomer = False
End If
Zie Waardevergelijkingen en instructies voor meer informatie.
Vergelijkingsoperators
Vergelijkingsoperatoren zoals , , , , <>
en >=
<=
produceren Booleaanse expressies door de expressie links van de operator te vergelijken met de expressie aan de rechterkant van de operator en het evalueren van het resultaat als True
of False
. >
<
=
In het volgende voorbeeld ziet u dit.
42 < 81
Omdat 42 kleiner is dan 81, wordt de Booleaanse expressie in het voorgaande voorbeeld geëvalueerd.True
Zie Waardevergelijkingen voor meer informatie over dit soort expressies.
Vergelijkingsoperatoren gecombineerd met logische operators
Vergelijkingsexpressies kunnen worden gecombineerd met behulp van logische operators om complexere Boole-expressies te produceren. In het volgende voorbeeld ziet u het gebruik van vergelijkingsoperatoren in combinatie met een logische operator.
x > y And x < 1000
In het voorgaande voorbeeld is de waarde van de algemene expressie afhankelijk van de waarden van de expressies aan elke zijde van de And
operator. Als beide expressies zijn True
, resulteert de algehele expressie in True
. Als een van beide expressies isFalse
, wordt de gehele expressie geëvalueerd.False
Operatoren voor kortsluiting
De logische operators AndAlso
en OrElse
vertonen gedrag dat bekend staat als kortsluiting. Een operator voor kortsluiting evalueert eerst de linkeroperand. Als de linkeroperand de waarde van de hele expressie bepaalt, wordt de uitvoering van het programma voortgezet zonder de juiste expressie te evalueren. In het volgende voorbeeld ziet u dit.
If 45 < 12 AndAlso testFunction(3) = 81 Then
' Add code to continue execution.
End If
In het voorgaande voorbeeld evalueert de operator de linkerexpressie. 45 < 12
Omdat de linkerexpressie evalueertFalse
, moet de volledige logische expressie worden geëvalueerd.False
De uitvoering van het programma slaat de uitvoering van de code in het If
blok dus over zonder de juiste expressie te evalueren. testFunction(3)
In dit voorbeeld wordt geen aanroep testFunction()
uitgevoerd omdat de linkerexpressie de volledige expressie vervalst.
Als de linkerexpressie in een logische expressie wordt OrElse
geëvalueerd True
, gaat de uitvoering ook verder met de volgende coderegel zonder de rechterexpressie te evalueren, omdat de linkerexpressie de hele expressie al heeft gevalideerd.
Vergelijking met niet-kortsluitingsoperators
Beide zijden van de logische operator worden daarentegen geëvalueerd wanneer de logische operatoren And
worden gebruikt.Or
In het volgende voorbeeld ziet u dit.
If 45 < 12 And testFunction(3) = 81 Then
' Add code to continue execution.
End If
In het voorgaande voorbeeld wordt aanroepen testFunction()
, ook al wordt de linkerexpressie geëvalueerd False
.
Haakjes-expressies
U kunt haakjes gebruiken om de volgorde van evaluatie van Boole-expressies te bepalen. Expressies tussen haakjes evalueren eerst. Voor meerdere geneste niveaus wordt prioriteit verleend aan de diep genestste expressies. Binnen haakjes verloopt de evaluatie volgens de regels van de prioriteit van de operator. Zie Operator-prioriteit in Visual Basic voor meer informatie.