Pesquisar este blog

quarta-feira, 30 de outubro de 2013

FUNÇÃO E INSTRUÇÃO DE CONTROLE DO FLUXO DE EXECUÇÃO – SELECT CASE

Select Case


    Instrução empregada para executar um ou mais grupos de instruções, dependendo do valor da expressão avaliada na cláusula Select Case, utilizando esta sintaxe:

Select Case Expressão
    [Case ValorDaExpressão1
      [Instruções1]
...
[Case ValorDaExpressãon
      [Instruçõesn]
...
Case Else
     [Instruçõeselse]
End Select

Onde, 
  • Expressão argumento obrigatório, indicando a expressão a ser avaliada antes de se tornar uma decisão;
  • ValorDaExpressão1-n: argumento obrigatório, indicando um ou mais valores possíveis para Expressão. Se expressão for igual a ValorDaExpressão1-n, as instruções que seguem a cláusula Case serão executadas;
  • Intruções1-n: lista de comandos a serem executados no caso de Expressão = ValorDaExpressão;
  • Case Else: argumento opcional, indica a cláusula a ser executada quando Expressão é diferente de qualquer um dos valores contidos nas cláusulas Case anteriores;
  • End Select: argumento obrigatório, indica o fim da instrução Select Case.
As seguintes considerações são válidas para a instrução Select Case: 
  • Select Case permite avaliar uma única vez uma expressão e executar uma série de comandos, dependendo do valor que a expressão tomou. Ela é muito mais eficiente que uma instrução If...Then...ElseIf...Else, que exige efetuar novamente o teste para Expressão a cada cláusula ElseIf;
  • Uma vez que o valor de Expressão tenha sido avaliado e seja igual a um dos valores contidos nas diversas cláusulas Case ValorDaExpressão, as instruções daquela cláusula serão executadas;
  • Após as instruções da primeira cláusula Case equivalentes a Expressão de uma instrução Select Case tiverem sido executadas, todas as demais cláusulas serão ignoradas (mesmo aquelas cujo valor sejam iguais ou equivalentes à Expressão), e o controle do fluxo de código continuará após a instrução End Select;
  • Opcionalmente, você pode fornecer uma cláusula Else (recomendável) para ser executada, sempre que Expressão for diferente dos diversos valores empregados nas cláusulas Case anteriores. Esta abordagem permite que o seu programa responda a valores inesperados de Expressão, os quais são sempre possíveis de ocorrer durante a execução de um programa;
  • Você pode avaliar múltiplas expressões em uma única cláusula Case. Por exemplo, supondo que Expressão retorne um valor numérico, como a idade de um cliente, você poderia avaliar esta idade em múltiplas faixas, como em:
Select Case Idade
   Case 18, 19, 20 
  • Quando Expressão se referenciar a uma faixa de valores, empregue a instrução Is:
Select Case Idade
   Case Is > 35
  • Se Expressão retornar uma string, faça a comparação com strings entre aspas:
Select Case Idade
Case “Rio de Janeiro”,”Niteroi”
  • Você pode aninhar instruções Select Case dentro de cláusulas Case, não se esquecendo de usar a instrução End Select para terminá-la, ou ocorrerá um erro de compilação.
Exemplo: O exemplo a seguir demonstra como empregar uma instrução Select Case para retornar diferentes valores de percentual a serem pagos para o imposto de renda em 2003, dependendo do valor da variável Salário.

Function Alíquota(Optional Redução as Single)

  Select Case Salário

     Case < 1058.01
            Alíquota = 0

     Case >= 1058.01 and < 2115.01
            Alíquota = 0.15
            Redução = 158.70

     Case > 2115.01 <= 12696
            Alíquota = 0.275
            Redução = 423.08

Case Else
            Alíquota = 0.3

End Select

End Function

Até a Próxima!!

Nenhum comentário:

Postar um comentário