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.
Uma expressão booliana é uma expressão que é avaliada como um valor do tipo de dados booliano: True
ou False
.
Boolean
as expressões podem tomar várias formas. A mais simples é a comparação direta do valor de uma Boolean
variável com um Boolean
literal, conforme mostrado no exemplo a seguir.
If newCustomer = True Then
' Insert code to execute if newCustomer = True.
Else
' Insert code to execute if newCustomer = False.
End If
Dois significados do operador =
Observe que a instrução newCustomer = True
de atribuição tem a mesma aparência da expressão no exemplo anterior, mas ela executa uma função diferente e é usada de forma diferente. No exemplo anterior, a expressão newCustomer = True
representa um valor booliano e o =
sinal é interpretado como um operador de comparação. Em uma instrução autônoma, o =
sinal é interpretado como um operador de atribuição e atribui o valor à direita à variável à esquerda. O exemplo a seguir ilustra essa situação.
If newCustomer = True Then
newCustomer = False
End If
Para obter mais informações, consulte Comparações de valor e Declarações.
Operadores de comparação
Operadores de comparação, como =
, <
, >
, <>
, <=
e >=
produzem expressões boolianas comparando a expressão no lado esquerdo do operador com a expressão no lado direito do operador e avaliando o resultado como True
ou False
. O exemplo a seguir ilustra essa situação.
42 < 81
Como 42 é menor que 81, a expressão booliana no exemplo anterior é avaliada como True
. Para obter mais informações sobre esse tipo de expressão, consulte Comparações de Valor.
Operadores de comparação combinados com operadores lógicos
Expressões de comparação podem ser combinadas usando operadores lógicos para produzir expressões boolianas mais complexas. O exemplo a seguir demonstra o uso de operadores de comparação em conjunto com um operador lógico.
x > y And x < 1000
No exemplo anterior, o valor da expressão geral depende dos valores das expressões em cada lado do And
operador. Se ambas as expressões forem True
, a expressão geral será avaliada como True
. Se uma das expressões for False
, a expressão inteira será avaliada como False
.
Operadores de Curto-circuito
Os operadores lógicos AndAlso
e OrElse
apresentam o comportamento conhecido como curto-circuito. Um operador de curto-circuito avalia primeiro o operando esquerdo. Se o operando esquerdo determinar o valor de toda a expressão, a execução do programa continuará sem avaliar a expressão direita. O exemplo a seguir ilustra essa situação.
If 45 < 12 AndAlso testFunction(3) = 81 Then
' Add code to continue execution.
End If
No exemplo anterior, o operador avalia a expressão à esquerda. 45 < 12
Como a expressão à esquerda é avaliada como False
, toda a expressão lógica deve ser avaliada como False
. Assim, a execução do programa ignora a execução do código dentro do If
bloco sem avaliar a expressão certa. testFunction(3)
Este exemplo não invoca testFunction()
porque a expressão à esquerda torna falsa a expressão inteira.
Da mesma forma, se a expressão à esquerda em uma expressão lógica usando OrElse
for avaliada como True
, a execução prosseguirá para a próxima linha de código sem avaliar a expressão à direita, pois a expressão à esquerda já valida a expressão inteira.
Comparação com Operadores que não de Curto-circuito
Em contrapartida, ambos os lados do operador lógico são avaliados quando os operadores lógicos And
e Or
são usados. O exemplo a seguir ilustra essa situação.
If 45 < 12 And testFunction(3) = 81 Then
' Add code to continue execution.
End If
O exemplo anterior chama testFunction()
mesmo que a expressão esquerda seja avaliada como False
.
Expressões parênteses
Você pode usar parênteses para controlar a ordem de avaliação de expressões boolianas. As expressões entre parênteses são avaliadas primeiro. Para vários níveis de aninhamento, a precedência é concedida às expressões mais profundamente aninhadas. Dentro dos parênteses, a avaliação prossegue de acordo com as regras de precedência do operador. Para obter mais informações, consulte Precedência do Operador no Visual Basic.