Sdílet prostřednictvím


OrElse – operátor (Visual Basic)

Provádí zkratování inkluzivní logické disjunkce u dvou výrazů.

Syntaxe

result = expression1 OrElse expression2  

Součástky

result
Povinný: Libovolný Boolean 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 výrazy nebo 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 (nevyhodnocené) True
False True True
False False False

Typy dat

Operátor OrElse 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 Or a IsTrue – 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. Or Přetížení operátorů a IsTrue operátorů ovlivňuje chování operátoruOrElse. Pokud váš kód používá OrElse ve třídě nebo struktuře, která přetížení Or , a IsTruenezapomeň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á OrElse operátor k provedení logické disjunkce u dvou výrazů. Výsledkem je Boolean hodnota, která představuje, zda je některý z těchto dvou výrazů pravdivý. Pokud je Trueprvní 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 OrElse b > c
secondCheck = b > a OrElse b > c
thirdCheck = b > a OrElse c > b

Předchozí příklad vytvoří výsledky True, Truea False v uvedeném pořadí. Při výpočtu firstCheckse druhý výraz nevyhodnocuje, protože první je již True. Druhý výraz se však vyhodnocuje ve výpočtu výrazu secondCheck.

Příklad 2

Následující příklad ukazuje Ifpříkaz ...Then obsahující dvě volání procedur. Pokud první volání vrátí True, druhá procedura není volána. To může vést k neočekávaným výsledkům, pokud druhý postup provádí důležité úlohy, které by se měly vždy provést při spuštění této části kódu.

If testFunction(5) = True OrElse otherFunction(4) = True Then
    ' If testFunction(5) is True, otherFunction(4) is not called.
    ' Insert code to be executed.
End If

Viz také