Operátor AndAlso (Visual Basic)
Provádí nesmídojít ke zkratu logické spojení dvou výrazů.
result = expression1 AndAlso expression2
Části
Termín |
Definice |
result |
Povinné.Všechny Boolean výraz.Výsledkem je Boolean výsledek porovnání dvou výrazů. |
expression1 |
Povinné.Všechny Boolean výraz. |
expression2 |
Povinné.Všechny Boolean výraz. |
Poznámky
Logická operace, které je označováno jako nesmídojít ke zkratu Pokud zkompilovaný kód vynechat hodnocení jeden výraz v závislosti na výsledku jiného výrazu.Je-li výsledek první výraz vyhodnocen Určuje konečný výsledek operace, není nutné vyhodnotit výraz druhé, protože ji nelze změnit konečný výsledek.Nesmídojít ke zkratu může zlepšit výkon obejitím výraz je složitý nebo zahrnuje volání procedura .
Pokud jsou oba výrazy vyhodnoceny True, result je True.Následující tabulka ukazuje, jak result je určena.
If expression1 is |
And expression2 is |
Hodnota result je |
True |
True |
True |
True |
False |
False |
False |
(nehodnoceno) |
False |
Typy dat
AndAlso operátor je definována pouze Datový typ Boolean (Visual Basic). Visual Basic převede operandem jako nezbytné Boolean a provede operaci zcela v Boolean.Pokud můžete přiřadit výsledek číselný typ Visual Basic převede z Boolean typu.To by mohla vést k neočekávanému chování.Například 5 AndAlso 12 vede k –1 při převodu na Integer.
Přetěžování
A operátor (Visual Basic) a Operátor nebo IsFalse (Visual Basic) může být přetížení, což znamená, že třída nebo struktura předefinovat jejich chování při operand je typu třída nebo struktura.Přetížení And a IsFalse operátory ovlivňuje chování AndAlso operátor. Pokud váš kód používá AndAlso na třída nebo struktura přetížení And a IsFalse, je třeba pochopit jejich předefinovaná chování.Další informace naleznete v tématu Operátor postupy (Visual Basic).
Příklad
V následujícím příkladu AndAlso operátor logické spojení dvou výrazů. Výsledkem je Boolean , zda conjoined celý výraz představuje hodnotu true.Pokud je první výraz False, druhý nebudou vyhodnoceny.
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
V předchozím příkladu vytváří výsledky True, False, a False, resp..Při výpočtu secondCheck, druhý výraz není vyhodnocena, protože již je první False.Však druhý výraz vyhodnocen ve výpočtu thirdCheck.
Následující příklad ukazuje Function procedura vyhledá danou hodnotu mezi prvky pole. Pokud je pole prázdné, nebo byla překročena délka pole, While výpis neprovádí test prvek pole proti hledanou hodnotu.
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é
Referenční dokumentace
Logické/bitové operátory (Visual Basic)
Priority operátorů v jazyce Visual Basic
Operátory uvedené podle funkcí (Visual Basic)
Operátor nebo IsFalse (Visual Basic)