Select Case

Długo zastanawiałam się nad tym co będzie następnym krokiem naszego kursu, postanowiłam postawić na instrukcje Select Case, która doskonale zastępuje zagnieżdżone instrukcje If...ElseIf, gdy konieczne jest wybieranie pomiędzy wieloma dostępnymi opcjami. Select Case sprawdza podane warunki i wybiera jeden odpowiedni blok kodu. Instrukcja Select Case jest szczególnie przydatna, gdy trzeba zdecydować, którą z wielu możliwości wybrać. Wybór jest wykonywany na podstawie porównania Wyrażenia z kolejnymi podanymi Wartościami. Gdy którekolwiek porównanie będzie prawdziwe zostanie wykonany odpowiedni blok instrukcji, po czym program przejdzie do wykonywania następnej instrukcji za End Select. Jeżeli Wyrażenie nie jest równe żadnej z podanych Wartości zostanie wykonany blok instrukcji zawarty pomiędzy Case Else i End Select (jeżeli taki istnieje - jest to blok opcjonalny), po czym zostanie wykonany rozkaz następny za End Select. Instrukcja Select Case może wykonać jeden lub żaden z dostępnych bloków instrukcji. Są one wykonywane aż do napotkania kolejnej instrukcji Case lub End Select, pozostałe bloki są omijane. Dozwolone jest również używanie kilku Wartości w jednej instrukcji Case.

Instrukcji Case Select możemy używać w trzech następujących wariantach:

  • Select Case wyrażenie
    Case Wartość 1
     blok instrukcji 1
    Case Wartość 2
     blok instrukcji 2
    ...
    Case Else
     blok instrukcji Else
    End Select
  • Select Case wyrażenie
    Case Is Relacja 1
     blok instrukcji 1
    Case Relacja 2
     blok instrukcji 2
    ...
    Case Else
     blok instrukcji Else
    End Select
  • Select Case wyrażenie
    Case Wartość 1a To 1b
     blok instrukcji 1
    Case Wartość 2a To 2b
     blok instrukcji 2
    ...
    Case Else
     blok instrukcji Else
    End Select


    Troszkę przykładów do tego co wyżej:

    Więc odpalamy naszego Visuala, na formatce umieszczamy przycisk nadając mu nazwę taką jaką uznamy za stosowną. No i oczywiście zaczynamy wpisywać nasz kod:

    Dim wiek as Currency

    wiek = InputBox ("Podaj swój wiek", "Wiek")
    Select Case wiek
    Case is < 0 :
     x = MsgBox "Chyba się jeszcze nie urodziłeś"
    Case 0 To 10
     x = MsgBox "Piękny wiek beztroskich zabaw w piaskownicy"
    Case 11 To 18
     x = MsgBox "Wczesna młodość"
    Case 19 To 25
     x = MsgBox "Piękny wiek młodzieńczych imprez"
    Case 26 To 40
     x = MsgBox "Dorosłość"
    Case 41 To 100
     x = MsgBox "Długowieczność:)))"
    Case Else
     x = MsgBox "Coś starasz się mnie oszukać"
    End Select

    Przetłumaczmy to więc teraz z polskiego na nasze:
    Jeżeli chodzi o deklaracje zmiennych to nie będę się przy niej zatrzymywać. Inputbox jest także chyba dość jasny, przejdziemy więc od razu do naszej instrukcji Selest Case. Na początku podajemy w Casie od czego będziemy zaczynać ( to nasza zmienna wiek ). Więc jak wpiszemy w naszą zmienną "wiek" liczbę poniżej zera nasza instrukcja zatrzyma się przy pierwszej linijce, a MsgBox wyświetli nam komunikat "Chyba się jeszcze nie urodziłeś". Tak jeżeli podamy inną liczbę np. 30 komputer "przejdzie" pierwsze trzy Casy i zatrzyma się dopiero przy tym, który zawiera wiek od 25 do 30 i oczywiście wyświetli się komunikat, który został przypisany temu Case - owi.
    Chyba jasne:)))