Expressions booléennes (Visual Basic)
Une expression booléenne est une expression qui s'évalue à une valeur de type de données booléen : True
ou False
. expressions Boolean
peuvent prendre plusieurs formes. La plus simple est la comparaison directe de la valeur d’une Boolean
variable à un Boolean
littéral, comme illustré dans l’exemple suivant.
If newCustomer = True Then
' Insert code to execute if newCustomer = True.
Else
' Insert code to execute if newCustomer = False.
End If
Deux significations de l'opérateur =
Notez que l’instruction newCustomer = True
d’affectation ressemble à l’expression de l’exemple précédent, mais qu’elle exécute une fonction différente et est utilisée différemment. Dans l’exemple précédent, l’expression newCustomer = True
représente une valeur booléenne et le =
signe est interprété comme un opérateur de comparaison. Dans une instruction autonome, le =
signe est interprété comme un opérateur d’affectation et affecte la valeur à droite à la variable à gauche. L'exemple suivant illustre ce comportement.
If newCustomer = True Then
newCustomer = False
End If
Pour plus d’informations, consultez Comparaisons de valeurs et instructions.
Opérateurs de comparaison
Les opérateurs de comparaison tels que =
, <
, >
, <>
, <=
et >=
produisent des expressions booléennes en comparant l'expression du côté gauche de l'opérateur à l'expression du côté droit de l'opérateur et en évaluant le résultat comme True
ou False
. L'exemple suivant illustre ce comportement.
42 < 81
Étant donné que 42 est inférieur à True
81, l’expression booléenne dans l’exemple précédent prend la valeur . Pour plus d’informations sur ce type d’expression, consultez Comparaisons de valeurs.
Opérateurs de comparaison combinés à des opérateurs logiques
Les expressions de comparaison peuvent être combinées à l’aide d’opérateurs logiques pour produire des expressions booléennes plus complexes. L’exemple suivant illustre l’utilisation d’opérateurs de comparaison conjointement avec un opérateur logique.
x > y And x < 1000
Dans l’exemple précédent, la valeur de l’expression globale dépend des valeurs des expressions de chaque côté de l’opérateur And
. Si les deux expressions sont True
, alors l'expression globale est évaluée à True
. Si l'une des expressions est False
, alors l'expression entière est évaluée à False
.
Opérateur de court-circuit
Les opérateurs logiques AndAlso
et OrElse
le comportement d’exposition connu sous le nom de court-circuit. Un opérateur de court-circuitage évalue d'abord l'opérande de gauche. Si l’opérande gauche détermine la valeur de l’expression entière, l’exécution du programme se poursuit sans évaluer l’expression droite. L'exemple suivant illustre ce comportement.
If 45 < 12 AndAlso testFunction(3) = 81 Then
' Add code to continue execution.
End If
Dans l’exemple précédent, l’opérateur évalue l’expression de gauche, 45 < 12
. Étant donné que l’expression de gauche prend False
la valeur , l’expression logique entière doit prendre la valeur False
. L’exécution du programme ignore donc l’exécution du code dans le bloc If
sans évaluer l’expression appropriée, testFunction(3)
. Cet exemple n’appelle pas testFunction()
, car l’expression de gauche falsifie l’expression entière.
De même, si l'expression de gauche d'une expression logique utilisant OrElse
évalue à True
, l'exécution passe à la ligne de code suivante sans évaluer l'expression de droite, car l'expression de gauche a déjà validé l'ensemble de l'expression.
Comparaison avec les opérateurs de non-court-circuit
En revanche, les deux côtés de l’opérateur logique sont évalués lorsque les opérateurs logiques And
et Or
sont utilisés. L'exemple suivant illustre ce comportement.
If 45 < 12 And testFunction(3) = 81 Then
' Add code to continue execution.
End If
L’exemple précédent appelle testFunction()
même si l’expression de gauche prend la valeur False
.
Expressions entre parenthèses
Vous pouvez utiliser des parenthèses pour contrôler l’ordre d’évaluation des expressions booléennes. Les expressions entourées de parenthèses évaluent d’abord. Pour plusieurs niveaux d’imbrication, la priorité est accordée aux expressions les plus profondément imbriquées. Entre parenthèses, l’évaluation se poursuit selon les règles de précédence de l’opérateur. Pour plus d’informations, consultez Précédence de l’opérateur dans Visual Basic.