Partager via


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

Choose

Select...Case, instruction (Visual Basic)

Switch

If, opérateur (Visual Basic)

Concepts

Structures de contrôle imbriquées (Visual Basic)

Structures de décision (Visual Basic)

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