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

Viz také