AndAlso – operátor (Visual Basic)
Provede krátkodobé rozvodu logického spojení na dvou výrazech.
Syntax
result = expression1 AndAlso expression2
Součásti
| Pojem | Definice |
|---|---|
result |
Povinná hodnota. Libovolný Boolean výraz. Výsledkem je Boolean výsledek porovnání dvou výrazů. |
expression1 |
Povinná hodnota. Libovolný Boolean výraz. |
expression2 |
Povinná hodnota. Libovolný Boolean výraz. |
Poznámky
Logická operace je označována jako krátká , pokud zkompilovaný kód může obejít vyhodnocení jednoho výrazu v závislosti na výsledku jiného výrazu. Pokud výsledek prvního vyhodnoceného výrazu určí konečný výsledek operace, není nutné vyhodnotit druhý výraz, protože nemůže změnit konečný výsledek. Krátkodobé okruhy mohou zvýšit výkon, pokud je výraz obcházení složitý, nebo pokud zahrnuje volání procedur.
Pokud se oba výrazy vyhodnotí jako True , result je True . Následující tabulka ukazuje, jak result je určena.
Pokud expression1 je |
A expression2 je |
Hodnota result je |
|---|---|---|
True |
True |
True |
True |
False |
False |
False |
(nehodnoceno) | False |
Poznámka
V porovnání s logickou hodnotou And operátor vždy vyhodnocuje oba výrazy, které by mohly zahrnovat volání procedur. Operátor AndAlso – provádí krátkodobé okruhy, což znamená, že pokud expression1 je False , pak není expression2 vyhodnocen.
Typy dat
AndAlsoOperátor je definován pouze pro datový typ Boolean. Visual Basic každou operand podle potřeby převede Boolean před vyhodnocením výrazu. pokud přiřadíte výsledek číselnému typu, Visual Basic jej převede z Boolean na tento typ, který False se změní 0 a True bude se jednat o -1 .
Další informace naleznete v tématu převody logických typů.
Přetížení
Operátor and a operátor s hodnotou false mohou být přetíženy, což znamená, že třída nebo struktura může předefinovat jejich chování, je-li operand typu této třídy nebo struktury. Přetížení operátorů And a IsFalse ovlivňuje chování AndAlso operátoru. Pokud váš kód používá AndAlso třídu nebo strukturu, která je přetížena And a, ujistěte se, že IsFalse rozumíte jejich předefinovanému chování. Další informace naleznete v tématu procedury operátorů.
Příklad 1
Následující příklad používá AndAlso operátor k provedení logického spojení se dvěma výrazy. Výsledkem je Boolean hodnota, která představuje, zda je úplný výraz JOIN pravdivý. Pokud je první výraz False , druhý není vyhodnocen.
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
Předchozí příklad vytvoří výsledky True , a v False False uvedeném pořadí. Při výpočtu není secondCheck druhý výraz vyhodnocen, protože první je již False . Nicméně druhý výraz je vyhodnocen při výpočtu thirdCheck .
Příklad 2
Následující příklad ukazuje Function proceduru, která vyhledává danou hodnotu mezi prvky pole. Pokud je pole prázdné nebo pokud byla překročena délka pole, While příkaz netestuje prvek pole proti hledané hodnotě.
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