Compartilhar via


Operador AndAlso (Visual Basic)

Executa a curto-circuitando conjunção lógica em duas expressões.

result = expression1 AndAlso expression2

Partes

Termo

Definição

result

Necessário. Qualquer expressão Boolean. O resultado é o Boolean resultado da comparação entre as duas expressões.

expression1

Necessário. Qualquer expressão Boolean.

expression2

Necessário. Qualquer expressão Boolean.

Comentários

Uma operação lógica é chamada de short-circuiting se o código compilado pode ignorar a avaliação de uma expressão de acordo com o resultado da outra expressão. Se o resultado da primeira expressão avaliada determina o resultado final da operação, não será necessário para avaliar a segunda expressão, porque ela não pode alterar o resultado final. Usa short-circuiting pode melhorar o desempenho se a expressão ignorada é complexa, ou se ela envolve chamadas de procedimento.

Se as duas expressões são True, result é True. A tabela a seguir ilustra como result é determinado.

Se expression1 é

E expression2 é

O valor do result é

True

True

True

True

False

False

False

(não avaliado)

False

Tipos de dados

O operador AndAlso é definido apenas para o Tipo de dados booliano (Visual Basic). Visual Basic converte cada operando conforme necessário para Boolean e executa a operação completamente em Boolean. Se você atribuir o resultado a um tipo numérico, Visual Basic converte do Boolean a esse tipo. Isso pode produzir um comportamento inesperado. Por exemplo, 5 AndAlso 12 resulta em –1 quando convertido para Integer.

Sobrecarga

O Operador And (Visual Basic) e o Operador IsFalse (Visual Basic) podem ser sobrecarregados, o que significa que uma classe ou estrutura pode redefinir seus comportamentos quando um operando tem o tipo da sua classe ou estrutura. Sobrecarregar o operadores And e IsFalse afeta o comportamento do operador AndAlso . Se seu código usa AndAlso em uma classe ou estrutura que sobrecarrega And e IsFalse, certifique-se de que você entende seu comportamento redefinido. Para mais informações, consulte Procedimentos do operador (Visual Basic).

Exemplo

O exemplo seguinte usa o operador AndAlso para executar uma conjunção lógica em duas expressões. O resultado é um Boolean valor que representa se conjoined de toda a expressão for verdadeira. Se a primeira expressão é False, a segunda não será avaliada.

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

O exemplo anterior produz resultados True, False e False respectivamente. No cálculo de secondCheck,a segunda expressão é avaliada não é avalidada porque a primeira já é False. No entanto, a segunda expressão é avaliada no cálculo de thirdCheck.

A exemplo a seguir mostra um Function procedimento que procura por um determinado valor entre os elementos de uma matriz. Se a matriz estiver vazia, ou se o comprimento da matriz foi excedido, o While demonstrativo não não teste o elemento da matriz com relação ao valor de pesquisa.

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

Consulte também

Referência

Operadores lógicos/bit a bit (Visual Basic)

Precedência do operador no Visual Basic

Operadores listados por funcionalidade (Visual Basic)

Operador And (Visual Basic)

Operador IsFalse (Visual Basic)

Conceitos

Operadores lógicos e bit a bit no Visual Basic