AndAlso operátor (Visual Basic)
Rövidzárolású logikai kötőszót hajt végre két kifejezésen.
Syntax
result = expression1 AndAlso expression2
Részek
Időszak | Definíció |
---|---|
result |
Szükséges. Bármilyen Boolean kifejezés. Az eredmény a Boolean két kifejezés összehasonlításának eredménye. |
expression1 |
Szükséges. Bármilyen Boolean kifejezés. |
expression2 |
Szükséges. Bármilyen Boolean kifejezés. |
Megjegyzések
A logikai művelet rövidzárlatnak minősül, ha a lefordított kód megkerüli az egyik kifejezés kiértékelését egy másik kifejezés eredményétől függően. Ha az első kiértékelt kifejezés eredménye határozza meg a művelet végeredményét, nincs szükség a második kifejezés kiértékelésére, mert az nem módosíthatja a végeredményt. A rövidzárolás akkor javíthatja a teljesítményt, ha a megkerült kifejezés összetett, vagy ha eljáráshívásokkal jár.
Ha mindkét kifejezés kiértékelése az True
, result
akkor az .True
Az alábbi táblázat a meghatározás módját result
mutatja be.
Ha expression1 igen, |
És expression2 van |
Az érték a következő result : |
---|---|---|
True |
True |
True |
True |
False |
False |
False |
(nincs kiértékelve) | False |
Feljegyzés
Logikai összehasonlítás esetén az And
operátor mindig mindkét kifejezést kiértékeli, ami magában foglalhatja az eljáráshívásokat is. Az AndAlso operátor rövidzárolást végez, ami azt jelenti, hogy ha expression1
igenFalse
, akkor expression2
nem lesz kiértékelve.
Adattípusok
Az AndAlso
operátor csak a logikai adattípushoz van definiálva. A Visual Basic szükség Boolean
szerint átalakítja az egyes operandusokat a kifejezés kiértékelése előtt. Ha az eredményt numerikus típushoz rendeli, a Visual Basic átalakítja az eredményt az adott típusra Boolean
, amely False
így válik 0
és True
válik belőle -1
.
További információ: Logikai típusú konverziók.
Túlterhelés
Az And operátor és az IsFalse operátor túlterhelhető, ami azt jelenti, hogy egy osztály vagy struktúra újradefiniálta a viselkedését, ha egy operandus az adott osztály vagy struktúra típusával rendelkezik. A túlterhelés és IsFalse
az And
operátorok túlterhelése befolyásolja az operátor viselkedésétAndAlso
. Ha a kód túlterhelt And
IsFalse
osztályt vagy struktúrát használAndAlso
, ügyeljen arra, hogy megértse az újradefiniált viselkedésüket. További információ: Operátori eljárások.
1. példa
Az alábbi példa az AndAlso
operátor használatával végez logikai kötőszót két kifejezésen. Az eredmény egy Boolean
érték, amely azt jelzi, hogy a teljes összekapcsolt kifejezés igaz-e. Ha az első kifejezés, False
a második nem lesz kiértékelve.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b AndAlso b > c
secondCheck = b > a AndAlso b > c
thirdCheck = a > b AndAlso c > b
Az előző példa a , False
és False
az , eredményét True
adja eredményül. A számítás secondCheck
során a második kifejezés nem lesz kiértékelve, mert az első már False
. A második kifejezés azonban kiértékelésre kerül a számítás thirdCheck
során.
2. példa
Az alábbi példa egy Function
olyan eljárást mutat be, amely egy adott értéket keres egy tömb elemei között. Ha a tömb üres, vagy túllépte a tömb hosszát, az While
utasítás nem teszteli a tömbelemet a keresési értéken.
Public Function findValue(ByVal arr() As Double,
ByVal searchValue As Double) As Double
Dim i As Integer = 0
While i <= UBound(arr) AndAlso arr(i) <> searchValue
' If i is greater than UBound(arr), searchValue is not checked.
i += 1
End While
If i > UBound(arr) Then i = -1
Return i
End Function