Espressioni booleane (Visual Basic)
Un'espressione booleana è un'espressione che restituisce un valore del tipo di dati Boolean:True o False. Le espressioni Boolean possono presentarsi in diverse forme. La più semplice è il confronto diretto del valore di una variabile Boolean con un valore letterale Boolean, come illustrato nell'esempio riportato di seguito.
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 di assegnazione newCustomer = True sembra uguale all'espressione dell'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 un operatore di confronto. In un'istruzione autonoma, il segno = viene interpretato come un operatore di assegnazione e assegna il valore di destra alla variabile di sinistra. Questa condizione è illustrata nell'esempio che segue.
If newCustomer = True Then
newCustomer = False
End If
Per ulteriori informazioni, vedere Confronto di valori (Visual Basic) e Istruzioni (Visual Basic).
Operatori di confronto
Gli operatori di confronto come =, <, >, <>, <= e >= producono espressioni booleane tramite il confronto dell'espressione a sinistra dell'operatore con l'espressione a destra dell'operatore e valutando il risultato come True o False. Questa condizione è illustrata nell'esempio che segue.
42 < 81
Poiché 42 è inferiore a 81, l'espressione booleana nell'esempio riportato in precedenza restituisce True. Per ulteriori informazioni su questo tipo di espressione, vedere Confronto di valori (Visual Basic).
Operatori di confronto combinati con operatori logici
Le espressioni di confronto possono essere combinate utilizzando gli operatori logici per produrre espressioni booleane più complesse. Nell'esempio seguente viene dimostrato l'uso degli operatori di confronto in combinazione con un operatore logico.
x > y And x < 1000
Nell'esempio illustrato in precedenza, il valore dell'espressione generale dipende dai valori delle espressioni su ogni lato dell'operatore And. Se entrambe le espressioni sono True, l'espressione totale restituisce True. Se una delle due espressioni è False, l'intera espressione restituirà False.
Operatori short circuit
Gli operatori logici AndAlso e OrElse esibiscono un comportamento noto come short-circuit. Un operatore di short-circuit restituisce prima l'operando di sinistra. Se l'operatore di sinistra determina il valore dell'intera espressione, l'esecuzione del programma procederà senza valutare l'espressione corretta. Questa condizione è illustrata nell'esempio che segue.
If 45 < 12 AndAlso testFunction(3) = 81 Then
' Add code to continue execution.
End If
Nell'esempio riportato in precedenza, l'operatore restituisce l'espressione di sinistra, 45 < 12. Poiché l'espressione di sinistra restituisce False, l'intera espressione logica deve restituire False. L'esecuzione del programma salta quindi l'esecuzione del codice all'interno del blocco If senza valutare l'espressione di destra, testFunction(3). Questo esempio non consente di chiamare testFunction() in quando l'espressione di sinistra falsifica l'intera espressione.
In modo simile, se l'espressione di sinistra in un'espressione logica che utilizza OrElse restituisce True, l'esecuzione procederà alla riga di codice successiva senza valutare l'espressione di destra, in quanto l'espressione di sinistra ha già convalidato l'intera espressione.
Confronto con gli operatori di non short-circuit
Entrambi i lati dell'operatore logico invece sono valutati quando vengono utilizzati gli operatori logici And e Or. Questa condizione è illustrata nell'esempio che segue.
If 45 < 12 And testFunction(3) = 81 Then
' Add code to continue execution.
End If
Nell'esempio elencato in precedenza viene chiamato testFunction() anche se l'espressione di sinistra restituisce False.
Espressioni tra parentesi
È possibile utilizzare le parentesi per controllare l'ordine di valutazione delle espressioni booleane. Le espressioni racchiuse tra parentesi vengono valutate per prime. Nel caso di più livelli di annidamento, la precedenza è accordata alle espressioni annidate più interne. All'interno delle parentesi, la valutazione viene eseguita in base alle regole di precedenza tra gli operatori. Per ulteriori informazioni, vedere Precedenza tra gli operatori in Visual Basic.
Vedere anche
Riferimenti
Operatori di confronto (Visual Basic)
Precedenza tra gli operatori in Visual Basic
Tipo di dati Boolean (Visual Basic)
Concetti
Operatori logici e bit per bit in Visual Basic
Confronto di valori (Visual Basic)
Combinazione efficace di operatori (Visual Basic)