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.

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.

Zie ook