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

Éléments

  • condition
    Obligatoire. Expression. Doit avoir pour valeur True ou False, ou un type de données implicitement convertible en Boolean.

  • Then
    Obligatoire dans la syntaxe à une seule ligne, facultatif dans la syntaxe multiligne.

  • statements
    Facultatif. 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
    Facultatif. Une ou plusieurs instructions qui suivent ElseIf...Then sont exécutées si elseifcondition a la valeur True.

  • elsestatements
    Facultatif. 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 Then A = A + 1 : B = B + A : C = C + B

Voir aussi

Tâches

Comment : exécuter des instructions en fonction d'une ou de plusieurs conditions (Visual Basic)

Référence

#If...Then...#Else, directives

Choose

Select...Case, instruction (Visual Basic)

Switch

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

Historique des modifications

Date

Historique

Motif

Décembre 2010

Réorganisation de la section Remarques.

Améliorations apportées aux informations.

Décembre 2010

Ajout d'un exemple.

Commentaires client.