Espressioni booleane (Visual Basic)

Un'espressione booleana è un'espressione che restituisce un valore del tipo di dati booleano: True o False. Boolean le espressioni possono accettare diverse forme. Il più semplice è il confronto diretto del valore di una variabile a un BooleanBoolean valore letterale, come illustrato nell'esempio seguente.

If newCustomer = True Then
    ' Insert code to execute if newCustomer = True.
Else
    ' Insert code to execute if newCustomer = False.
End If

Due significati dell'operatore =

Si noti che l'istruzione newCustomer = True di assegnazione ha lo stesso aspetto dell'espressione nell'esempio precedente, ma esegue una funzione diversa e viene usata in modo diverso. Nell'esempio precedente l'espressione newCustomer = True rappresenta un valore booleano e il = segno viene interpretato come operatore di confronto. In un'istruzione autonoma il = segno viene interpretato come operatore di assegnazione e assegna il valore a destra alla variabile a sinistra. Questa condizione è illustrata nell'esempio seguente.

If newCustomer = True Then
    newCustomer = False
End If

Per altre informazioni, vedere Confronto dei valori e istruzioni.

Operatori di confronto

Operatori di confronto, ad =esempio , <>><, , <=e >= producono espressioni booleane confrontando l'espressione sul lato sinistro dell'operatore all'espressione sul lato destro dell'operatore e valutando il risultato come True o .False Questa condizione è illustrata nell'esempio seguente.

42 < 81

Poiché 42 è minore di 81, l'espressione booleana nell'esempio precedente restituisce True. Per altre informazioni su questo tipo di espressione, vedere Confronto dei valori.

Operatori di confronto combinati con operatori logici

Le espressioni di confronto possono essere combinate usando operatori logici per produrre espressioni booleane più complesse. Nell'esempio seguente viene illustrato l'uso degli operatori di confronto in combinazione con un operatore logico.

x > y And x < 1000

Nell'esempio precedente il valore dell'espressione complessiva dipende dai valori delle espressioni su ogni lato dell'operatore And . Se entrambe le espressioni sono True, l'espressione complessiva restituisce True. Se entrambe le espressioni sono False, l'intera espressione restituisce False.

Operatori Short-Circuiting

Gli operatori logici AndAlso e OrElse il comportamento di esposizione noti come short-circuiting. Un operatore di corto circuito valuta prima l'operando sinistro. Se l'operando sinistro determina il valore dell'intera espressione, l'esecuzione del programma procede senza valutare l'espressione destra. Questa condizione è illustrata nell'esempio seguente.

If 45 < 12 AndAlso testFunction(3) = 81 Then
    ' Add code to continue execution.
End If

Nell'esempio precedente l'operatore valuta l'espressione sinistra, 45 < 12. Poiché l'espressione sinistra restituisce False, l'intera espressione logica deve valutare False. L'esecuzione del programma ignora quindi l'esecuzione del codice all'interno del If blocco senza valutare l'espressione corretta, testFunction(3). Questo esempio non viene chiamato testFunction() perché l'espressione sinistra falsifica l'intera espressione.

Analogamente, se l'espressione sinistra in un'espressione logica usando OrElse restituisce True, l'esecuzione procede alla riga di codice successiva senza valutare l'espressione destra, perché l'espressione sinistra ha già convalidato l'intera espressione.

Confronto con operatori non a corto circuito

Al contrario, entrambi i lati dell'operatore logico vengono valutati quando vengono usati gli operatori And logici e Or . Questa condizione è illustrata nell'esempio seguente.

If 45 < 12 And testFunction(3) = 81 Then
    ' Add code to continue execution.
End If

L'esempio precedente chiama testFunction() anche se l'espressione sinistra restituisce False.

Espressioni parentesi

È possibile usare parentesi per controllare l'ordine di valutazione delle espressioni booleane. Le espressioni racchiuse tra parentesi valutano prima. Per più livelli di annidamento, la precedenza viene concessa alle espressioni più annidate. All'interno delle parentesi, la valutazione procede in base alle regole di precedenza dell'operatore. Per altre informazioni, vedere Precedenza dell'operatore in Visual Basic.

Vedi anche