Instrução Select Case

Executa um de vários grupos de instruções, dependendo do valor de uma expressão.

Sintaxe

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

Argumentos:

  • Testexpression: expressão numérica ou de string.

  • expressionlist-n: Obrigatório se a cláusula Case for exibida. Uma lista delimitada por vírgulas de uma ou mais expressões.

  • statements-n: Uma ou mais instruções executadas se testexpression corresponder a qualquer parte de expressionlist-n.

  • elsestatements-n: Uma ou mais instruções executadas se testexpression não corresponder a nenhuma das cláusulas Case.

Comentários

Se testexpression corresponder a qualquer expressão Case expressionlist, as instruções após essa cláusula Case serão executadas até a próxima cláusula Case ou, no caso da última cláusula, até End Select. Em seguida, o controle passa para a instrução após End Select. Se testexpression corresponder a uma expressão de expressionlist em mais de uma cláusula Case, somente as instruções após a primeira correspondência serão executadas.

A cláusula Case Else é usada para indicar as elsestatements a serem executadas se nenhuma correspondência for encontrada entre a testexpression e uma lista de expressões em qualquer uma das outras seleções de Case. Embora não seja obrigatório, é recomendável ter uma instrução Case Else no bloco Select Case para lidar com valores de testexpression imprevistos. Se nenhuma expressionlist Case corresponder a testexpression e não houver uma instrução Case Else, a execução continuará na instrução após End Select.

As instruções Select Case podem ser aninhadas. Cada instrução Select Case aninhada deve ter uma instrução End Select correspondente.

O exemplo a seguir ilustra o uso da instrução Select Case.

Exemplo 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 )