Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Exécute un groupe d'instructions soumises à une condition, en fonction de la valeur d'une expression.
Syntaxe
' Multiline syntax:
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]
Liens rapides vers un exemple de code
Cet article comprend plusieurs exemples qui illustrent les utilisations de l’instruction If...Then...Else :
Éléments
condition
Obligatoire. Expression. Doit évaluer en True ou False, ou à un type de données implicitement convertible en Boolean.
Si l’expression est une variable NullableBoolean qui prend la valeur Nothing, la condition est traitée comme si l’expression est False, tandis que les blocs ElseIf sont évalués s’ils existent, ou le bloc Else est exécuté s’il existe.
Then
Obligatoire dans la syntaxe monoligne ; facultatif dans la syntaxe multiligne.
statements
Optionnel. Une ou plusieurs instructions qui suivent If...Then et sont exécutées si la valeur condition est True.
elseifcondition
Obligatoire si ElseIf est présente. Expression. Doit évaluer en True ou False, ou à un type de données implicitement convertible en Boolean.
elseifstatements
Optionnel. Une ou plusieurs instructions qui suivent ElseIf...Then et sont exécutées si la valeur elseifcondition est True.
elsestatements
Optionnel. Une ou plusieurs instructions qui sont exécutées si aucune expression condition ou elseifcondition précédente ne prend la valeur True.
End If
Arrête la version multiligne du bloc If...Then ...Else.
Notes
Syntaxe multiligne
Quand 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 dans l’ordre. Lorsqu’un Trueelseifcondition est trouvé, les instructions immédiatement après le ElseIf associé sont exécutées. Si aucune elseifcondition ne prend la valeur True, ou s’il n’y a pas d’instructions ElseIf, les instructions qui suivent Else sont exécutées. Après avoir exécuté les instructions qui suivent Then, ElseIf ou Else, l’exécution continue avec l’instruction qui suit End If.
Les clauses ElseIf et Else sont 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 les unes dans les autres.
Dans la syntaxe multiligne, l’instruction If doit être la seule instruction de la première ligne. Les instructions ElseIf, Elseet End If ne peuvent être précédées que d’une étiquette de ligne. Le bloc If...Then...Else doit se terminer par une instruction End If.
Conseil
L’instruction Select...Case peut être plus utile lorsque vous évaluez une expression unique qui a plusieurs valeurs possibles.
Syntaxe monoligne
Vous pouvez utiliser la syntaxe à ligne unique pour une condition unique avec du code à exécuter si la valeur est vrai. Toutefois, la syntaxe à plusieurs lignes offre plus de structure et de flexibilité et est plus facile à lire, à gérer et à déboguer.
Ce qui suit le mot clé Then est examiné pour déterminer si une instruction est un If à ligne unique. Si quelque chose d’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 doit s’agir du début d’uneIf...Then ...Else à plusieurs lignes.
Dans la syntaxe monoligne, plusieurs instructions peuvent être exécutées à la suite d’une décision If...Then. Toutes les instructions doivent se trouver sur la même ligne et être séparées par des points-virgules.
Exemple de syntaxe multiligne
L’exemple suivant illustre l’utilisation de la syntaxe multiligne de l’instruction If...Then ...Else.
'Create a Random object to seed our starting value
Dim randomizer As New Random()
'set our variable
Dim count As Integer = randomizer.Next(0, 5)
Dim message As String
'If count is zero, output will be no items
If count = 0 Then
message = "There are no items."
'If count is 1, output will be "There is 1 item.".
ElseIf count = 1 Then
message = "There is 1 item."
'If count is greater than 1, output will be "There are {count} items.", where {count} is replaced by the value of count.
Else
message = $"There are {count} items."
End If
Console.WriteLine(message)
'This example displays output like the following:
' There are 4 items.
Exemple de syntaxe imbriquée
L’exemple suivant contient des instructions If...Then...Else imbriquées.
Public Sub Main()
' Run the function as part of the WriteLine output.
Console.WriteLine("Time Check is " & CheckIfTime() & ".")
End Sub
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 3:59 P.M.,
' or if Thursday from noon to 12:59 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
'This example displays output like the following:
'Time Check is False.
Exemple de syntaxe monoligne
L’exemple suivant illustre l’utilisation de la syntaxe monoligne.
Private Sub SingleLine()
'Create a Random object to seed our starting values
Dim randomizer As New Random()
Dim A As Integer = randomizer.Next(10, 20)
Dim B As Integer = randomizer.Next(0, 20)
Dim C As Integer = randomizer.Next(0, 5)
'Let's display the initial values for comparison
Console.WriteLine($"A value before If: {A}")
Console.WriteLine($"B value before If: {B}")
Console.WriteLine($"C value before If: {C}")
' 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
'If the condition is true, the values will be different
Console.WriteLine($"A value after If: {A}")
Console.WriteLine($"B value after If: {B}")
Console.WriteLine($"C value after If: {C}")
End Sub
'This example displays output like the following:
'A value before If: 11
'B value before If: 6
'C value before If: 3
'A value after If: 12
'B value after If: 18
'C value after If: 21