Compartilhar via


Expressões boolianas (Visual Basic)

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.

Consulte também