If...Then...Else, instruction (Visual Basic)
Exécute un groupe d'instructions soumises à une condition, en fonction de la valeur d'une expression.
' Multiple-line syntax:
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]
Composants
condition
Requis. Expression. Doit avoir pour valeur True ou False, ou un type de données implicitement convertible en Boolean.Si l'expression est une variable de nullableBoolean qui correspond à rien, la condition est traitée comme si l'expression n'est pas True, et le bloc d' Else est exécuté.
Then
Obligatoire dans la syntaxe à une seule ligne, facultatif dans la syntaxe multiligne.statements
Optionnel. Une ou plusieurs instructions qui suivent If...Then sont exécutées si condition a la valeur True.elseifcondition
Obligatoire si ElseIf is présent. Expression. Doit avoir pour valeur True ou False, ou un type de données implicitement convertible en Boolean.elseifstatements
Optionnel. Une ou plusieurs instructions qui suivent ElseIf...Then sont exécutées si elseifcondition a la valeur True.elsestatements
Optionnel. Une ou plusieurs instructions sont exécutées si aucune expression condition ou elseifcondition précédente n'a la valeur True.End If
Met fin au bloc If...Then...Else.
Notes
Syntaxe sur plusieurs lignes
Lorsqu'une instruction If...Then...Else est rencontrée, condition est testée. Si condition a la valeur True, les instructions qui suivent Then sont exécutées. Si condition a la valeur False, chaque instruction ElseIf (le cas échéant) est évaluée à tour de rôle. Quand une elseifcondition de valeur True est trouvée, les instructions qui suivent immédiatement l'instruction ElseIf correspondante sont exécutées. Si aucune elseifcondition n'a la valeur True, ou s'il n'existe aucune instruction ElseIf, les instructions qui suivent Else sont exécutées. Après l'exécution des instructions qui suivent Then, ElseIf ou Else, l'exécution se poursuit avec l'instruction qui suit End If.
Les clauses ElseIf et Else sont toutes deux facultatives. Vous pouvez avoir autant de clauses ElseIf que vous le souhaitez dans une instruction If...Then...Else, mais aucune clause ElseIf ne peut apparaître après une clause Else. Les instructions If...Then...Else peuvent être imbriquées à l'intérieur les unes des autres.
Dans la syntaxe multiligne, l'instruction If doit être la seule instruction présente sur la première ligne. Les instructions ElseIf, Else et End If ne peuvent être précédées que par une étiquette de ligne. Le bloc If...Then...Else doit se terminer par une instruction End If.
Conseil
Select...Case, instruction (Visual Basic) peut s'avérer mieux adapté à l'évaluation d'une seule expression qui possède plusieurs valeurs possibles.
Syntaxe à une seule ligne
Vous pouvez utiliser la syntaxe à une seule ligne pour effectuer de petits tests simples. Toutefois, la syntaxe multiligne fournit une plus grande structure et davantage de souplesse. En outre, elle est généralement plus facile à lire, à gérer et à déboguer.
Ce qui suit le mot clé Then est examiné pour déterminer si une instruction correspond à If sur une seule ligne. Si tout élément autre qu'un commentaire apparaît après Then sur la même ligne, l'instruction est traitée comme une instruction If à une seule ligne. Si Then est absent, il s'agit du début d'une instruction If...Then...Else multiligne.
Dans la syntaxe à une seule ligne, plusieurs instructions peuvent être exécutées à la suite d'une décision If...Then. Toutes les instructions doivent être présentes sur la même ligne et être séparées par le signe deux-points.
Exemple
L'exemple suivant illustre l'utilisation de la syntaxe sur plusieurs lignes de l'instruction If...Then...Else.
Dim count As Integer = 0
Dim message As String
If count = 0 Then
message = "There are no items."
ElseIf count = 1 Then
message = "There is 1 item."
Else
message = "There are " & count & " items."
End If
L'exemple suivant contient des instructions If...Then...Else imbriquées.
Private Function CheckIfTime() As Boolean
' Determine the current day of week and hour of day.
Dim dayW As DayOfWeek = DateTime.Now.DayOfWeek
Dim hour As Integer = DateTime.Now.Hour
' Return True if Wednesday from 2 to 4 P.M.,
' or if Thursday from noon to 1 P.M.
If dayW = DayOfWeek.Wednesday Then
If hour = 14 Or hour = 15 Then
Return True
Else
Return False
End If
ElseIf dayW = DayOfWeek.Thursday Then
If hour = 12 Then
Return True
Else
Return False
End If
Else
Return False
End If
End Function
L'exemple suivant illustre l'utilisation de la syntaxe à une seule ligne.
' If A > 10, execute the three colon-separated statements in the order
' that they appear
If A > 10 Then A = A + 1 : B = B + A : C = C + B
Voir aussi
Référence
#If...Then...#Else, directives
Select...Case, instruction (Visual Basic)
Concepts
Structures de contrôle imbriquées (Visual Basic)