Delen via


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.

Vergelijkingsoperatoren

Vergelijkingsoperatoren zoals =, <, >, <>, <= en >= produceren Booleaanse expressies door de expressie aan de linkerkant van de operator te vergelijken met de expressie aan de rechterkant van de operator en het resultaat te evalueren als True of False. In het volgende voorbeeld ziet u dit.

42 < 81

Omdat 42 kleiner is dan 81, wordt de Booleaanse uitdrukking in het voorgaande voorbeeld beoordeeld als 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 False is, dan wordt de gehele expressie geëvalueerd naar False.

operators voor Short-Circuiting

De logische operators AndAlso en OrElse vertonen gedrag dat bekend staat als kortsluiting. Een kortsluitoperator evalueert de linkeroperand eerst. 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 linker expressie evalueert tot False, moet de volledige logische expressie evalueert tot 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 met behulp van OrElse evalueert tot True, gaat de uitvoering verder met de volgende regel code zonder de rechterexpressie te evalueren, omdat de linkerexpressie de gehele expressie al heeft beoordeeld.

Vergelijking met niet-Short-Circuiting operators

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 roept testFunction() aan, ook al wordt de linkeruitdrukking als False geëvalueerd.

Uitdrukkingen tussen haakjes

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.

Zie ook