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.
Esegue una congiunzione logica a corto circuito su due espressioni.
Sintassi
result = expression1 AndAlso expression2
Parti
| Termine | Definizione |
|---|---|
result |
Obbligatorio. Qualsiasi Boolean espressione. Il risultato è il Boolean risultato del confronto delle due espressioni. |
expression1 |
Obbligatorio. Qualsiasi Boolean espressione. |
expression2 |
Obbligatorio. Qualsiasi Boolean espressione. |
Osservazioni:
Un'operazione logica viene detta corto circuito se il codice compilato può ignorare la valutazione di un'espressione a seconda del risultato di un'altra espressione. Se il risultato della prima espressione valutata determina il risultato finale dell'operazione, non è necessario valutare la seconda espressione, perché non può modificare il risultato finale. Il corto circuito può migliorare le prestazioni se l'espressione ignorata è complessa o se comporta chiamate di routine.
Se entrambe le espressioni restituiscono True, result è True. Nella tabella seguente viene illustrato come result viene determinato.
Se expression1 è |
Ed expression2 è |
Il valore di result è |
|---|---|---|
True |
True |
True |
True |
False |
False |
False |
(non valutato) | False |
Annotazioni
In un confronto booleano, l'operatore valuta sempre entrambe le espressioni, che possono includere l'esecuzione And di chiamate di routine.
L'operatore AndAlso esegue il corto circuito, il che significa che se expression1 è False, expression2 non viene valutato.
Tipi di dati
L'operatore AndAlso è definito solo per il tipo di dati booleano. Visual Basic converte ogni operando in base alle Boolean esigenze prima di valutare l'espressione. Se si assegna il risultato a un tipo numerico, Visual Basic lo converte da Boolean a tale tipo in modo che False diventi e True diventi 0-1.
Per altre informazioni, vedere Conversioni di tipi booleani.
Sovraccarico
È possibile eseguire l'overloaddell'operatore And e dell'operatore IsFalse, il che significa che una classe o una struttura può ridefinirne il comportamento quando un operando ha il tipo di tale classe o struttura. L'overload degli And operatori e IsFalse influisce sul comportamento dell'operatore AndAlso . Se il codice usa AndAlso su una classe o una struttura che esegue l'overload And e IsFalse, assicurarsi di comprendere il comportamento ridefinito. Per altre informazioni, vedere Operator Procedures.
Esempio 1
Nell'esempio seguente viene usato l'operatore AndAlso per eseguire una congiunzione logica su due espressioni. Il risultato è un Boolean valore che indica se l'intera espressione congiunte è true. Se la prima espressione è False, il secondo non viene valutato.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b AndAlso b > c
secondCheck = b > a AndAlso b > c
thirdCheck = a > b AndAlso c > b
L'esempio precedente produce rispettivamente i risultati di True, Falsee False. Nel calcolo di secondCheck, la seconda espressione non viene valutata perché la prima è già False. Tuttavia, la seconda espressione viene valutata nel calcolo di thirdCheck.
Esempio 2
Nell'esempio seguente viene illustrata una Function routine che cerca un determinato valore tra gli elementi di una matrice. Se la matrice è vuota o se la lunghezza della matrice è stata superata, l'istruzione While non testa l'elemento della matrice rispetto al valore di ricerca.
Public Function findValue(ByVal arr() As Double,
ByVal searchValue As Double) As Double
Dim i As Integer = 0
While i <= UBound(arr) AndAlso arr(i) <> searchValue
' If i is greater than UBound(arr), searchValue is not checked.
i += 1
End While
If i > UBound(arr) Then i = -1
Return i
End Function