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. Expressões Boolean podem tomar várias formas. A mais simples é a comparação direta do valor de uma variável Boolean 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 de atribuição newCustomer = True tem a mesma aparência da expressão no exemplo anterior, mas ela executa uma função diferente e é usada de maneira 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 Instruçõ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 operador And. 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 da expressão inteira, 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 precisa ser avaliada como False. Assim, a execução do programa ignora a execução do código dentro do bloco If sem avaliar a expressão direita, testFunction(3). Este exemplo não chama testFunction(), porque a expressão esquerda falsifica toda a expressão.

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

Comparação com Operadores que não de Curto-circuito

Por outro lado, 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 Entre 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.

Confira também