Comment : exécuter des instructions en fonction d'une ou de plusieurs conditions
Mise à jour : novembre 2007
L'If...Then...Else, instruction (Visual Basic) permet d'exécuter une instruction ou un ensemble d'instructions spécifique en fonction de la valeur Boolean, type de données (Visual Basic) d'une condition. La condition provient généralement d'une comparaison entre deux valeurs, mais elle peut être une expression qui évalue une valeur Boolean (True ou False). Elle peut comprendre des valeurs d'autres types de données, tels que des types numériques, qui ont été converties en type Boolean.
Pour exécuter une ou plusieurs instructions si une condition a la valeur True
Si vous n'avez qu'une seule instruction à exécuter, utilisez la syntaxe sur une ligne de la construction If...Then...Else. Les instructions Else ou End If ne sont pas nécessaires. L'exemple suivant illustre ce comportement :
Sub fixDate() Dim myDate As Date = #2/13/1973# If myDate < Now Then myDate = Now End Sub
- ou -
Pour exécuter plusieurs lignes de code lorsque la condition est True, vous devez utiliser une syntaxe sur plusieurs lignes, comprenant l'instruction End If. Si vous n'avez aucun code à exécuter lorsque la condition est False, vous omettez l'instruction Else. L'exemple suivant illustre ce comportement :
Dim alertLabel As New System.Windows.Forms.Label Sub alertUser(ByVal value As Long) If value = 0 Then alertLabel.ForeColor = System.Drawing.Color.Red alertLabel.Font = New Font(alertLabel.Font, _ FontStyle.Bold Or FontStyle.Italic) End If End Sub
Pour exécuter des instructions si une condition a la valeur True et d'autres si elle a la valeur False
Utilisez une construction If...Then...Else avec l'instruction Else (Visual Basic) pour définir deux blocs d'instructions. Visual Basic exécute un bloc si la condition est True et l'autre si elle est False. L'exemple suivant illustre ce comportement :
Dim alertLabel As New System.Windows.Forms.Label Sub alertUser(ByVal value As Long) If value = 0 Then alertLabel.ForeColor = System.Drawing.Color.Red alertLabel.Font = New Font(alertLabel.Font, _ FontStyle.Bold Or FontStyle.Italic) Else alertLabel.Forecolor = System.Drawing.Color.Black alertLabel.Font = New Font(alertLabel.Font, _ FontStyle.Regular) End If End Sub
Pour tester des conditions supplémentaires si la première condition a la valeur False
Utilisez une construction If...Then...Else avec une ou plusieurs instructions ElseIf (Visual Basic) pour tester des conditions supplémentaires si la première condition est False. Dans l'exemple suivant, la procédure Function calcule une prime salariale en fonction du taux de performance. Le bloc d'instruction qui suit l'instruction Else s'exécute uniquement si les conditions des instructions If et ElseIf sont toutes False.
Function bonus(ByVal performance As Integer, ByVal salary As Decimal) _ As Decimal If performance = 1 Then Return salary * 0.1 ElseIf performance = 2 Then Return salary * 0.09 ElseIf performance = 3 Then Return salary * 0.07 Else Return 0 End If End Function
Visual Basic teste les conditions dans l'ordre dans lequel elles apparaissent dans les instructions If...Then...Else. Lorsqu'il rencontre une condition True ou une instruction Else, il exécute le bloc d'instruction correspondant. Le contrôle passe alors à l'instruction qui suit l'instruction End If.
Vous pouvez avoir autant d'instructions ElseIf que nécessaire, voire aucune. Vous pouvez inclure ou omettre une instruction Else, que vous ayez ou non des instructions ElseIf.
Voir aussi
Tâches
Comment : transférer un contrôle hors d'une structure de contrôle
Comment : tester plusieurs valeurs d'une expression
Comment : conserver le contrôle si une erreur se produit
Concepts
Structures de contrôle imbriquées