Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Provádí logická spojení s zkratováním na dvou výrazech.
Syntaxe
result = expression1 AndAlso expression2
Součástky
| termín | 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.
Datové typy
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