Expressões booleanas (Visual Basic)

Uma expressão booleana é uma expressão que é avaliada como um valor do tipo de dados booleano: True ou False. Boolean As expressões podem assumir várias formas. A mais simples é a comparação direta do valor de uma Boolean variável com um Boolean literal, como 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 executa uma função diferente e é usada de forma diferente. No exemplo anterior, a expressão newCustomer = True representa um valor booleano 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 isso.

If newCustomer = True Then
    newCustomer = False
End If

Para obter mais informações, consulte Comparações e instruções de valor.

Operadores de Comparação

Operadores de comparação como , , , , , e >= produzem expressões booleanas 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 isso.

42 < 81

Como 42 é menor que 81, a expressão booleana 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 booleanas 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, então a expressão geral será avaliada como True. Se qualquer uma das expressões for False, então a expressão inteira será avaliada como False.

Operadores de curto-circuito

Os operadores AndAlso lógicos e OrElse exibem 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 prosseguirá sem avaliar a expressão correta. O exemplo a seguir ilustra isso.

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. A execução do programa, portanto, ignora a execução do código dentro do If bloco sem avaliar a expressão correta, testFunction(3). Este exemplo não chama testFunction() porque a expressão esquerda falsifica a expressão inteira.

Da mesma forma, se a expressão esquerda em uma expressão lógica usando OrElse avalia como True, a execução prossegue para a próxima linha de código sem avaliar a expressão direita, porque a expressão esquerda já validou a expressão inteira.

Comparação com operadores sem curto-circuito

Por outro lado, ambos os lados do operador lógico são avaliados quando os operadores And lógicos e Or são usados. O exemplo a seguir ilustra isso.

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 left seja avaliada como False.

Expressões entre parênteses

Você pode usar parênteses para controlar a ordem de avaliação das expressões booleanas. As expressões entre parênteses avaliam primeiro. Para vários níveis de aninhamento, a precedência é concedida às expressões aninhadas mais profundamente. Entre 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