Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Executa a conjunção lógica de curto-circuito em duas expressões.
Sintaxe
result = expression1 AndAlso expression2
Partes
| Prazo | Definição |
|---|---|
result |
Obrigatório Qualquer Boolean expressão. O resultado é o Boolean resultado da comparação das duas expressões. |
expression1 |
Obrigatório Qualquer Boolean expressão. |
expression2 |
Obrigatório Qualquer Boolean expressão. |
Observações
Uma operação lógica é considerada um curto-circuito se o código compilado puder ignorar a avaliação de uma expressão, dependendo do resultado de outra expressão. Se o resultado da primeira expressão avaliada determinar o resultado final da operação, não haverá necessidade de avaliar a segunda expressão, pois ela não pode alterar o resultado final. O curto-circuito poderá melhorar o desempenho se a expressão ignorada for complexa ou se envolver chamadas de procedimento.
Se ambas as expressões forem avaliadas como True, result será True. A tabela a seguir ilustra como result é determinado.
Se expression1 for |
E expression2 é |
O valor de result é |
|---|---|---|
True |
True |
True |
True |
False |
False |
False |
(não avaliado) | False |
Observação
Em uma comparação booliana, o And operador 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.
Tipos de dados
O AndAlso operador é definido apenas para o tipo de dados booliano. O Visual Basic converte cada operando conforme necessário antes Boolean de avaliar a expressão. Se você atribuir o resultado a um tipo numérico, o Visual Basic o converterá desse Boolean tipo, de modo que False se torne 0 e True se torne -1.
Para obter mais informações, consulte Conversões de tipo booliano.
Sobrecarga
O Operador E e o Operador IsFalse podem ser sobrecarregados, o que significa que uma classe ou estrutura pode redefinir seu comportamento quando um operando tem o tipo dessa classe ou estrutura. Sobrecarregar o And operador e IsFalse afetar o comportamento do AndAlso operador. Se o código for AndAlso usado em uma classe ou estrutura que sobrecarrega And e IsFalse, certifique-se de entender o comportamento redefinido deles. Para obter mais informações, consulte Procedimentos de Operador.
Exemplo 1
O exemplo a seguir usa o AndAlso operador para executar uma conjunção lógica em duas expressões. O resultado é um Boolean valor que representa se toda a expressão conjoinada é verdadeira. Se a primeira expressão for 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 de True, Falsee False, respectivamente. No cálculo de secondCheck, a segunda expressão não é avaliada porque a primeira já Falseestá . No entanto, a segunda expressão é avaliada no cálculo de thirdCheck.
Exemplo 2
O exemplo a seguir mostra um Function procedimento que pesquisa um determinado valor entre os elementos de uma matriz. Se a matriz estiver vazia ou se o comprimento da matriz tiver sido excedido, a While instrução não testará o elemento de matriz em 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