Operador And (Visual Basic)
Desenvolve uma conjunção lógica em duas expressões Boolean
ou uma conjunção bit a bit em duas expressões numéricas.
Sintaxe
result = expression1 And expression2
Partes
result
Obrigatórios. Qualquer Boolean
ou expressão numérica. Para comparação booliana, result
é a conjunção lógica de dois valores Boolean
. Para operações bit a bit, result
é um valor numérico que representa a conjunção bit a bit de dois padrões de bit numéricos.
expression1
Obrigatórios. Qualquer Boolean
ou expressão numérica.
expression2
Obrigatórios. Qualquer Boolean
ou expressão numérica.
Comentários
Para comparação booliana, result
é True
se e somente se ambos expression1
e expression2
resultarem em True
. A tabela a seguir ilustra como result
é determinado.
Se expression1 for |
E expression2 for |
O valor de result é |
---|---|---|
True |
True |
True |
True |
False |
False |
False |
True |
False |
False |
False |
False |
Observação
Em uma comparação booliana, o operador And
sempre avalia ambas as expressões, o que pode incluir a realização de chamadas de procedimento. O Operador AndAlso executa um curto-circuito, o que significa que, se expression1
for False
, expression2
não será avaliado.
Quando aplicado a valores numéricos, o operador And
executa uma comparação bit a bit dos bits posicionados de forma idêntica em duas expressões numéricas e define o bit correspondente em result
de acordo com a tabela a seguir.
Se o bit em expression1 for |
E o bit em expression2 for |
O bit em result é |
---|---|---|
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
Observação
Como os operadores lógicos e bit a bit têm uma precedência menor do que outros operadores aritméticos e relacionais, todas as operações bit a bit devem ser colocadas entre parênteses para garantir resultados precisos.
Tipos de dados
Se os operandos consistirem em uma expressão Boolean
e uma expressão numérica, o Visual Basic converterá a expressão Boolean
em um valor numérico (–1 para True
e 0 para False
) e executará uma operação bit a bit.
Para uma comparação booliana, o tipo de dados do resultado será Boolean
. Para uma comparação bit a bit, o tipo de dados de resultado será um tipo numérico apropriado para os tipos de dados de expression1
e expression2
. Consulte a tabela "Comparações relacionais e bit a bit" nos Tipos de dados de resultados do operador.
Observação
O operador And
pode ser sobrecarregado, o que significa que uma classe ou estrutura pode redefinir seu comportamento quando um operando tem o tipo dessa classe ou estrutura. Se o código usar esse operador em uma classe ou estrutura, certifique-se de entender seu comportamento redefinido. Para obter mais informações, confira Procedimentos de operador.
Exemplo 1
O exemplo a seguir usa o operador And
para executar uma conjunção lógica em duas expressões. O resultado é um valor Boolean
que representa se ambas as expressões são True
.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck As Boolean
firstCheck = a > b And b > c
secondCheck = b > a And b > c
O exemplo anterior produz resultados de True
e False
, respectivamente.
Exemplo 2
O exemplo a seguir usa o operador And
para executar a conjunção lógica nos bits individuais de duas expressões numéricas. O bit no padrão de resultado será definido se os bits correspondentes nos operandos forem definidos como 1.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (a And b)
secondPattern = (a And c)
thirdPattern = (b And c)
O exemplo anterior produz resultados de 8, 2 e 0, respectivamente.