Megosztás a következőn keresztül:


Logikai kifejezések (Visual Basic)

A logikai kifejezés olyan kifejezés, amely a logikai adattípus értékét értékeli ki: True vagy False. Boolean a kifejezések több formában is használhatók. A legegyszerűbb egy változó értékének Boolean közvetlen összehasonlítása egy Boolean literálhoz, ahogy az az alábbi példában is látható.

If newCustomer = True Then
    ' Insert code to execute if newCustomer = True.
Else
    ' Insert code to execute if newCustomer = False.
End If

Az = operátor két jelentése

Figyelje meg, hogy a hozzárendelési utasítás newCustomer = True ugyanúgy néz ki, mint az előző példában szereplő kifejezés, de egy másik függvényt hajt végre, és másképp használja. Az előző példában a kifejezés newCustomer = True logikai értéket jelöl, a = jelet pedig összehasonlító operátorként értelmezi a rendszer. Önálló utasításban a rendszer hozzárendelési operátorként értelmezi a = jelet, és a jobb oldalon lévő értéket a bal oldali változóhoz rendeli. Az alábbi példa ezt szemlélteti.

If newCustomer = True Then
    newCustomer = False
End If

További információ: Érték-összehasonlítások és -utasítások.

Összehasonlító operátorok

Az olyan összehasonlító operátorok, mint =a , <, >, <><=, és >= logikai kifejezéseket hoznak létre az operátor bal oldalán lévő kifejezés és az operátor jobb oldalán lévő kifejezés összehasonlításával és az eredmény TrueFalsekiértékelésével. Az alábbi példa ezt szemlélteti.

42 < 81

Mivel a 42 kisebb, mint 81, az előző példában szereplő logikai kifejezés a következő lesz True: . Az ilyen típusú kifejezésekről további információt az Érték-összehasonlítások című témakörben talál.

Összehasonlító operátorok logikai operátorokkal kombinálva

Az összehasonlító kifejezések logikai operátorokkal kombinálhatók összetettebb logikai kifejezések létrehozásához. Az alábbi példa az összehasonlító operátorok logikai operátorokkal való együttes használatát mutatja be.

x > y And x < 1000

Az előző példában a teljes kifejezés értéke az operátor mindkét oldalán And lévő kifejezések értékeitől függ. Ha mindkét kifejezés az True, akkor a teljes kifejezés kiértékelése a következő lesz True: . Ha bármelyik kifejezés False, akkor az egész kifejezés eredménye False.

Short-Circuiting operátorok

A logikai operátorok AndAlso és OrElse a rövidzárlatnak nevezett viselkedést mutatnak. A rövidzárlat-operátor először kiértékeli a bal operandust. Ha a bal operandus határozza meg a teljes kifejezés értékét, akkor a program végrehajtása a megfelelő kifejezés kiértékelése nélkül folytatódik. Az alábbi példa ezt szemlélteti.

If 45 < 12 AndAlso testFunction(3) = 81 Then
    ' Add code to continue execution.
End If

Az előző példában az operátor kiértékeli a bal oldali kifejezést. 45 < 12 Mivel a bal oldali kifejezés False eredményt ad, a teljes logikai kifejezésnek False eredményt kell adnia. A program végrehajtása így kihagyja a kód végrehajtását a blokkon belül a If megfelelő kifejezés kiértékelése nélkül. testFunction(3) Ez a példa nem hívja meg testFunction(), mert a bal oldali kifejezés hamissá teszi a teljes kifejezést.

Hasonlóképpen, ha egy logikai kifejezés bal oldali kifejezése OrElseTrue értékeli, a végrehajtás a következő kódsorra lép a jobb oldali kifejezés kiértékelése nélkül, mert a bal oldali kifejezés már az egész kifejezést érvényesítette.

Összehasonlítás nemShort-Circuiting operátorokkal

Ezzel szemben a logikai operátor mindkét oldalát kiértékeli a rendszer a logikai operátorok AndOr használatakor. Az alábbi példa ezt szemlélteti.

If 45 < 12 And testFunction(3) = 81 Then
    ' Add code to continue execution.
End If

Az előző példa meghívja a testFunction()-t, még akkor is, ha a bal oldali kifejezés False-re értékelődik.

Zárójeles kifejezések

Zárójelek használatával szabályozhatja a logikai kifejezések kiértékelési sorrendjét. A zárójelek által körülvett kifejezések először kiértékelnek. A beágyazás több szintje esetén elsőbbséget élveznek a legmélyebb beágyazott kifejezések. Zárójelben az értékelés az operátorok precedenciaszabályai szerint folytatódik. További információ: Operátorok elsőbbsége a Visual Basicben.

Lásd még