Partager via


Opérateur AndAlso (Visual Basic)

Effectue une combinaison logique de court-circuitage sur deux expressions.

Syntaxe

result = expression1 AndAlso expression2  

Pièces

Terme Définition
result Obligatoire. Toute Boolean expression. Le résultat est le résultat de la Boolean comparaison des deux expressions.
expression1 Obligatoire. Toute Boolean expression.
expression2 Obligatoire. Toute Boolean expression.

Remarques

Une opération logique est considérée comme un court-circuit si le code compilé peut contourner l’évaluation d’une expression en fonction du résultat d’une autre expression. Si le résultat de la première expression évaluée détermine le résultat final de l’opération, il n’est pas nécessaire d’évaluer la deuxième expression, car elle ne peut pas modifier le résultat final. Le court-circuit peut améliorer les performances si l’expression contournée est complexe ou si elle implique des appels de procédure.

Si les deux expressions sont évaluées Trueà , result est True. Le tableau suivant montre comment result déterminer.

Si expression1 c’est Et expression2 c’est La valeur de result est
True True True
True False False
False (non évalué) False

Remarque

Dans une comparaison booléenne, l’opérateur And évalue toujours les deux expressions, ce qui peut inclure l’exécution d’appels de procédure. L’opérateur AndAlso effectue un court-circuit, ce qui signifie que si expression1 c’est Falsele cas, il expression2 n’est pas évalué.

Types de données

L’opérateur AndAlso est défini uniquement pour le type de données booléen. Visual Basic convertit chaque opérande selon les besoins avant Boolean d’évaluer l’expression. Si vous affectez le résultat à un type numérique, Visual Basic le convertit de Boolean ce type de sorte qu’il False devient 0 et True devient -1. Pour plus d’informations, consultez Conversions de types booléens.

Surcharge

L’opérateur And et l’opérateurIsFalse peuvent être surchargés, ce qui signifie qu’une classe ou une structure peut redéfinir leur comportement lorsqu’un opérande a le type de cette classe ou structure. La surcharge des AndIsFalse opérateurs affecte le comportement de l’opérateur AndAlso . Si votre code utilise AndAlso sur une classe ou une structure qui surcharge And et IsFalse, veillez à comprendre leur comportement redéfini. Pour plus d’informations, consultez Procédures d’opérateur.

Exemple 1

L’exemple suivant utilise l’opérateur AndAlso pour effectuer une combinaison logique sur deux expressions. Le résultat est une Boolean valeur qui indique si l’expression jointe entière est vraie. Si la première expression est False, la seconde n’est pas évaluée.

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’exemple précédent produit respectivement les résultats de True, Falseet , respectivement False. Dans le calcul de secondCheck, la deuxième expression n’est pas évaluée, car la première est déjà False. Toutefois, la deuxième expression est évaluée dans le calcul de thirdCheck.

Exemple 2

L’exemple suivant montre une Function procédure qui recherche une valeur donnée parmi les éléments d’un tableau. Si le tableau est vide ou si la longueur du tableau a été dépassée, l’instruction While ne teste pas l’élément de tableau par rapport à la valeur de recherche.

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

Voir aussi