Condividi tramite


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 assumere diverse forme. Il più semplice è il confronto diretto del valore di una Boolean variabile con un Boolean 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. Nell'esempio seguente viene illustrato questo.

If newCustomer = True Then
    newCustomer = False
End If

Per altre informazioni, vedere Confronti di valori e istruzioni.

Operatori di confronto

Operatori di confronto come =, <>, <>, <=, e >= producono espressioni booleane confrontando l'espressione sul lato sinistro dell'operatore con l'espressione sul lato destro dell'operatore e valutando il risultato come True o False. Nell'esempio seguente viene illustrato questo.

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 tra 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 di 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 una delle due espressioni è False, l'intera espressione restituisce False.

Operatori Short-Circuiting

Gli operatori logici AndAlso e OrElse mostrano un comportamento noto come corto circuito. 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. Nell'esempio seguente viene illustrato questo.

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 restituire False. L'esecuzione del programma ignora quindi l'esecuzione del codice all'interno del If blocco senza valutare l'espressione corretta, testFunction(3). In questo esempio non viene chiamato testFunction() perché l'espressione sinistra falsifica l'intera espressione.

Analogamente, se l'espressione sinistra in un'espressione logica tramite 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 categorizzati comeShort-Circuiting

Al contrario, entrambi i lati dell'operatore logico vengono valutati quando vengono usati gli operatori And logici e Or . Nell'esempio seguente viene illustrato questo.

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

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

Espressioni tra parentesi

È possibile usare le parentesi per controllare l'ordine di valutazione delle espressioni booleane. Le espressioni racchiuse tra parentesi vengono valutate per prime. Per livelli multipli di annidamento, la precedenza viene data alle espressioni più profondamente annidate. Tra parentesi, la valutazione procede in base alle regole di precedenza dell'operatore. Per altre informazioni, vedere Precedenza degli operatori in Visual Basic.

Vedere anche