Utilisation des instructions conditionnelles

Microsoft VBScript

Microsoft® Visual Basic® Scripting Edition Utilisation des instructions conditionnelles  Didacticiel VBScript 
 Précédent
 Suivant 


Contrôle de l'exécution du programme
Vous pouvez contrôler le déroulement de votre script à l'aide d'instructions conditionnelles et d'instructions de boucle. Les instructions conditionnelles vous permettent d'écrire du code VBScript qui prend des décisions et répète des actions. Les instructions conditionnelles suivantes sont disponibles dans VBScript :
Prises de décision avec If...Then...Else
L'instruction If...Then...Else vous permet d'évaluer si une condition a pour valeur True (vraie) ou False (fausse) et, en fonction du résultat, de spécifier une ou plusieurs instructions à exécuter. En général, la condition est une expression qui utilise un opérateur de comparaison pour comparer une valeur ou une variable avec une autre. Pour des informations sur les opérateurs de comparaison, reportez-vous à Opérateurs de comparaison. Il est possible d'imbriquer les instructions If...Then...Else sur autant de niveaux que nécessaire.

Exécution d'instructions si une condition a pour valeur True (vraie)
Pour exécuter une seule instruction lorsqu'une condition a pour valeur True, utilisez la syntaxe monoligne de l'instruction If...Then...Else. L'exemple ci-dessous présente la syntaxe monoligne. Remarquez que cet exemple ne comporte pas le mot clé Else.
 Sub MajDate()
     Dim maDate
     maDate = #2/13/95#
     If maDate < Now Then maDate = Now
 End Sub
Pour exécuter plusieurs lignes de code, vous devez utiliser la syntaxe multiligne (ou syntaxe de bloc). Cette syntaxe comprend l'instruction End If comme le montre l'illustration ci-dessous :
 Sub AlerterUtilisateur(valeur)
     If valeur = 0 Then
         AlertLabel.ForeColor = vbRed
         AlertLabel.Font.Bold = True
         AlertLabel.Font.Italic = True
     End If
 End Sub
Exécution de certaines instructions si une condition a pour valeur True et exécution d'autres instructions si une condition a pour valeur False
Vous pouvez utiliser l'instruction If...Then...Else pour définir deux blocs d'instructions exécutables : un bloc à exécuter si la condition a pour valeur True, et un autre bloc à exécuter si la condition a pour valeur False.
 Sub AlerterUtilisateur(valeur)
     If valeur = 0 Then
         AlertLabel.ForeColor = vbRed
         AlertLabel.Font.Bold = True
         AlertLabel.Font.Italic = True
     Else
         AlertLabel.Forecolor = vbBlack
         AlertLabel.Font.Bold = False
         AlertLabel.Font.Italic = False
     End If
 End Sub
Choisir entre plusieurs alternatives
Une variante de l'instruction If...Then...Else vous permet de choisir entre plusieurs alternatives. L'ajout de clauses ElseIf étend la fonctionnalité de l'instruction If...Then...Else pour vous permettre de contrôler le déroulement du programme en fonction de différentes possibilités. Par exemple :
 Sub AfficherValeur(value)
     If value = 0 Then
         MsgBox valeur
     ElseIf value = 1 Then
         MsgBox valeur
     ElseIf value = 2 Then
         Msgbox valeur
     Else
         Msgbox "Valeur hors limites!"
     End If
Vous pouvez ajouter autant de clauses ElseIf que nécessaire pour créer des alternatives. Mais une utilisation extensive des clauses ElseIf peut devenir complexe. L'instruction Select Case constitue le meilleur moyen de choisir entre plusieurs alternatives.

Prises de décision avec Select Case
La structure Select Case offre une alternative à If...Then...ElseIf pour exécuter de façon sélective un bloc d'instructions parmi plusieurs. Une instruction Select Case offre les mêmes possibilités que If...Then...Else, mais rend le code plus efficace et plus lisible.

Une structure Select Case fonctionne avec une seule expression de test, évaluée une fois, au début de la structure. Le résultat de l'expression est ensuite comparé avec les valeurs de chaque bloc Case de la structure. Lorsqu'il y a correspondance, le bloc d'instructions Case concerné s'exécute :

 Select Case Document.Form1.CardType.Options(SelectedIndex).Text
    Case "MasterCard"
        AfficherLogoMC
        ValiderCompteMC
    Case "Visa"
        AfficherLogoVisa
        ValiderCompteVisa
    Case "American Express"
        AfficherLogoAMEXCO
        ValiderCompteAMEXCO
    Case Else
        AfficherInconnue
        Redemander
End Select
Remarquez que la structure Select Case évalue l'expression une fois au début de la structure. Par contre, la structure If...Then...ElseIf peut évaluer une expression différente pour chaque instruction ElseIf. Vous pouvez remplacer une structure If...Then...ElseIf par une structure Select Case uniquement si chaque instruction ElseIf évalue la même expression.