Or – operátor (Visual Basic)
Provede logickou disjunkci na dvou Boolean
výrazech nebo bitovou disjunkci na dvou číselných výrazech.
Syntaxe
result = expression1 Or expression2
Součástky
result
Povinný: Libovolný Boolean
nebo číselný výraz Pro Boolean
porovnání result
je inkluzivní logický disjunkce dvou Boolean
hodnot. U bitových operací result
je číselná hodnota představující inkluzivní bitovou disjunkci dvou číselných bitových vzorů.
expression1
Povinný: Libovolný Boolean
nebo číselný výraz
expression2
Povinný: Libovolný Boolean
nebo číselný výraz
Poznámky
Pro Boolean
porovnání result
, je-li False
a pouze v případě, že oba expression1
a expression2
vyhodnotit na False
. Následující tabulka ukazuje, jak result
je určeno.
Pokud expression1 je |
A expression2 je |
Hodnota result je |
---|---|---|
True |
True |
True |
True |
False |
True |
False |
True |
True |
False |
False |
False |
Poznámka:
Boolean
Ve srovnání Or
operátor vždy vyhodnocuje oba výrazy, které by mohly zahrnovat volání procedur. Operátor OrElse provádí zkratování, což znamená, že pokud expression1
je True
, pak expression2
není vyhodnocen.
U bitových operací Or
operátor provádí bitové porovnání identicky umístěných bitů ve dvou číselných výrazech a nastaví odpovídající bit podle result
následující tabulky.
Pokud je bit v expression1 |
A bit in expression2 je |
Bit in result je |
---|---|---|
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
Poznámka:
Vzhledem k tomu, že logické a bitové operátory mají nižší prioritu než jiné aritmetické a relační operátory, měly by být všechny bitové operace uzavřeny v závorkách, aby se zajistilo přesné provedení.
Typy dat
Pokud se operandy skládají z jednoho Boolean
výrazu a jednoho číselného výrazu, Jazyk Visual Basic převede Boolean
výraz na číselnou hodnotu (–1 pro a 0 pro True
False
) a provede bitové operace.
Boolean
Pro porovnání je datový typ výsledku Boolean
. Pro bitové porovnání je datový typ výsledku číselný typ vhodný pro datové typy expression1
a expression2
. Viz tabulka Relační a bitové porovnání v datových typech výsledků operátoru.
Přetížení
Operátor Or
může být přetížen, což znamená, že třída nebo struktura mohou předefinovat jeho chování, pokud operand má typ této třídy nebo struktury. Pokud váš kód používá tento operátor pro takovou třídu nebo strukturu, ujistěte se, že rozumíte jeho předdefinované chování. Další informace naleznete v tématu Procedury operátoru.
Příklad 1
Následující příklad používá Or
operátor k provedení inkluzivní logické disjunkce u dvou výrazů. Výsledkem je Boolean
hodnota, která představuje, zda je některý ze dvou výrazů True
.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b Or b > c
secondCheck = b > a Or b > c
thirdCheck = b > a Or c > b
Předchozí příklad vytvoří výsledky True
, True
a False
, v uvedeném pořadí.
Příklad 2
Následující příklad používá Or
operátor k provedení inkluzivní logické disjunkce na jednotlivých bitech dvou číselných výrazů. Bit ve výsledném vzoru je nastaven, pokud je některý z odpovídajících bitů v operandech nastaven na hodnotu 1.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (a Or b)
secondPattern = (a Or c)
thirdPattern = (b Or c)
Předchozí příklad vytvoří výsledky 10, 14 a 14.