Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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.