Sdílet prostřednictvím


AndAlso – operátor (Visual Basic)

Provádí logická spojení s zkratováním na dvou výrazech.

Syntaxe

result = expression1 AndAlso expression2  

Součástky

Pojem definice
result Povinný: Libovolný Boolean výraz. Výsledkem je Boolean porovnání dvou výrazů.
expression1 Povinný: Libovolný Boolean výraz.
expression2 Povinný: Libovolný Boolean výraz.

Poznámky

Logická operace se říká, že je zkratka , 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čuje konečný výsledek operace, není nutné vyhodnotit druhý výraz, protože nemůže změnit konečný výsledek. Zkratování může zlepšit výkon, pokud je vynechaný výraz 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čeno.

Pokud expression1 je A expression2 je Hodnota result je
True True True
True False False
False (nevyhodnocené) False

Poznámka:

V logickém porovnání And operátor vždy vyhodnocuje oba výrazy, což může zahrnovat volání procedur. Operátor AndAlso provádí zkratování, což znamená, že pokud expression1 je False, pak expression2 není vyhodnocen.

Typy dat

Operátor AndAlso je definován pouze pro logický datový typ. Jazyk Visual Basic převede každý operand podle potřeby na Boolean před vyhodnocením výrazu. Pokud přiřadíte výsledek číselnému typu, jazyk Visual Basic ho převede na Boolean tento typ, který False se stane 0 a True stane se -1z něj . Další informace naleznete v tématu Logické převody typů.

Přetížení

Operátor And a IsFalse – operátor mohou být přetíženy, což znamená, že třída nebo struktura mohou předefinovat jejich chování, pokud má operand typ této třídy nebo struktury. And Přetížení operátorů a IsFalse operátorů ovlivňuje chování operátoruAndAlso. Pokud váš kód používá AndAlso ve třídě nebo struktuře, která přetížení And , a IsFalsenezapomeňte pochopit jejich předdefinované chování. Další informace naleznete v tématu Procedury operátoru.

Příklad 1

Následující příklad používá AndAlso operátor k provedení logické spojení se dvěma výrazy. Výsledkem je Boolean hodnota, která představuje, zda je celý konjoinovaný výraz pravdivý. Pokud je Falseprvní výraz , druhý se nevyhodnocuje.

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, Falsea False, v uvedeném pořadí. Při výpočtu secondCheckse druhý výraz nevyhodnocuje, protože první je již False. Druhý výraz se však vyhodnocuje ve výpočtu výrazu thirdCheck.

Příklad 2

Následující příklad ukazuje proceduru Function , která hledá danou hodnotu mezi prvky pole. Pokud je matice prázdná nebo pokud byla překročena délka pole, While příkaz neotestuje prvek pole proti vyhledávací 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é