If...Then...Else, instruction (Visual Basic)

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 ] ]

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, et 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’une elseifconditionTrue est trouvée, 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

Voir aussi