Instruction Select Case

Exécute un groupe d'instructions parmi plusieurs, en fonction de la valeur d'une expression.

Syntaxe

Select Case testexpression
   [Case expressionlist-n
      [statements-n]] . . .
   [Case Else
      [elsestatements-n]]
End Select
        

Arguments :

  • testexpression : expression numérique ou de chaîne.

  • expressionlist-n : requis en la présence de Case. Liste d'expressions séparées par des virgules.

  • statements-n : instructions exécutées si la valeur de l'argument testexpression correspond à une partie de la valeur de l'argument expressionlist-n.

  • elsestatements-n : instructions exécutées si la valeur de l'argument testexpression ne correspond à aucune des clauses Case.

Remarques

Si la valeur de testexpression correspond à une expression de Case expressionlist, les instructions qui suivent cette clause Case sont exécutées jusqu'à la clause Case suivante ou, s'il s'agit de la dernière clause, jusqu'à End Select. Le contrôle passe ensuite à l'instruction figurant après End Select. Si la valeur de testexpression correspond à une expression de l'argument expressionlist dans plusieurs clauses Case, seules les instructions qui suivent la première correspondance sont exécutées.

La clause Case Else permet d'indiquer les instructions elsestatements à exécuter si aucune correspondance n'est trouvée entre la valeur de testexpression et une valeur de expressionlist dans les autres sélections Case. Bien que ce ne soit pas requis, il est conseillé d'indiquer une instruction Case Else dans le bloc Select Case pour gérer les valeurs imprévues de testexpression. Si aucune valeur de Case expressionlist ne correspond à la valeur de testexpression et qu'aucune instruction Case Else n'est indiquée, l'exécution se poursuit avec l'instruction qui suit End Select.

Les instructions Select Case peuvent être imbriquées. Chaque instruction Select Case imbriquée doit avoir une instruction End Select correspondante.

L'exemple suivant illustre l'utilisation de l'instruction Select Case.

Exemple 1 :

Dim dayOfWeek
Dim result
' Assign the day of the week (can be any number between 1 and 7)
dayOfWeek = 3 ' 1 = Sunday, 2 = Monday, ..., 7 = Saturday
' Use Select Case to check the value of dayOfWeek
Select Case dayOfWeek
    Case 1
        result = "Sunday"
    Case 2
        result = "Monday"
    Case 3
        result = "Tuesday"
    Case 4
        result = "Wednesday"
    Case 5
        result = "Thursday"
    Case 6
        result = "Friday"
    Case 7
        result = "Saturday"
    Case Else
        result = "Invalid day"
End Select
' Now, result will contain the name of the day corresponding to dayOfWeek ( Tuesday in this case )