OrElse, opérateur

Mise à jour : novembre 2007

Effectue une disjonction logique inclusive "court-circuitante" sur deux expressions.

result = expression1 OrElse expression2

Éléments

  • result
    Requis. Toute expression Boolean.

  • expression1
    Requis. Toute expression Boolean.

  • expression2
    Requis. Toute expression Boolean.

Notes

Une opération logique est dite de court-circuit si le code compilé peut ignorer 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'y a pas besoin d'évaluer la seconde expression, car elle ne peut pas changer le résultat final. Un court circuit peut améliorer les performances si l'expression ignorée est complexe, ou si elle implique des appels de procédure.

Si une ou les deux expressions ont la valeur True, result a la valeur True. Le tableau suivant illustre la manière dont result est déterminé.

Si expression1 a la valeur

Et expression2 a la valeur

La valeur de result est

True

(non évaluée)

True

False

True

True

False

False

False

Types de données

L'opérateur OrElse est défini uniquement pour Boolean, type de données (Visual Basic). Visual Basic convertit chaque opérande si nécessaire en Boolean et exécute l'opération entière en Boolean. Si vous assignez le résultat à un type numérique, Visual Basic le convertit de Boolean en ce type. Cette conversion pourrait avoir comme conséquence un comportement inattendu. Par exemple, 5 OrElse 12 donne –1 lorsqu'il est converti en Integer.

Surcharge

Les opérateurs Or (Visual Basic) et IsTrue 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 de cette structure. La surcharge des opérateurs Or et IsTrue affecte le comportement de l'opérateur OrElse. Si votre code utilise OrElse sur une classe ou une structure qui surcharge Or et IsTrue, assurez-vous que vous comprenez son comportement redéfini. Pour plus d'informations, consultez Procédures d'opérateur.

Exemple

L'exemple suivant utilise l'opérateur OrElse pour effectuer une disjonction logique sur deux expressions. Le résultat est une valeur Boolean qui indique si l'une des deux expressions est true. Si la première expression est True, 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 OrElse b > c
secondCheck = b > a OrElse b > c
thirdCheck = b > a OrElse c > b

L'exemple précédent produit respectivement les résultats suivants : True, True et False. Dans le calcul de firstCheck, la seconde expression n'est pas évaluée parce que la première a déjà la valeur True. Toutefois, la seconde expression est évaluée dans le calcul de secondCheck.

L'exemple suivant affiche une instruction If...Then qui contient deux appels de procédure. Si le premier appel retourne True, la seconde procédure n'est pas appelée. Si la seconde procédure effectue des tâches importantes qui doivent toujours être effectuées lorsque cette section de code est exécutée, des résultats inattendus pourraient se produire.

If testFunction(5) = True OrElse otherFunction(4) = True Then
    ' If testFunction(5) is True, otherFunction(4) is not called.
    ' Insert code to be executed.
End If

Voir aussi

Concepts

Opérateurs de bits et opérateurs logiques en Visual Basic

Référence

Opérateurs logiques/de bits

Priorité des opérateurs en Visual Basic

Opérateurs répertoriés par fonctionnalité

Or, opérateur (Visual Basic)

IsTrue, opérateur