Instrukcja Select...Case zamiast If
Instrukcja If może być z powodzeniem zastąpiona przez instrukcję Select Case. Select Case ma dużo krótszy zapis. Żeby to udowodnić napiszemy kod z instrukcją If a nastepnie napiszemy kod, który wykonuje to samo tylko, że ma krótszy i czytelniejszy zapis. No to do dzieła :) W procedurze użycia przycisku formy wstawmy sobie kod:Dim wiek As Byte wiek = InputBox("Ile masz lat", "Pytanie") If wiek <= 0 Then MessageBox.Show("To nie jest możliwe", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Warning) ElseIf wiek < 16 Then MessageBox.Show("To jeszcze mentalnie dzieci", "Nieźle", MessageBoxButtons.OK, MessageBoxIcon.Information) ElseIf wiek < 18 Then MessageBox.Show("Uważają się za dorosłych a wyglądają jak dzieci", "Prawda?", MessageBoxButtons.OK, MessageBoxIcon.Information) ElseIf wiek < 40 Then MessageBox.Show("W kwiecie wieku :)", "Cudowny czas", MessageBoxButtons.OK, MessageBoxIcon.Information) ElseIf wiek <= 100 Then MessageBox.Show("Poczciwy wiek", "Złote lata", MessageBoxButtons.OK, MessageBoxIcon.Information) ElseIf wiek < 110 Then MessageBox.Show("Białe kruki", "Niesamowite", MessageBoxButtons.OK, MessageBoxIcon.Information) ElseIf wiek = "" Then Else MessageBox.Show("To niemożliwe", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Warning) End If
Jak widać kod do najbardziej przejrzystych nie należy a dodatkowo instrukcje If nie pozwalają nam w prosty sposób operować na przedziałach. Instrukcja Select Case nam na to pozwala. Spróbujmy teraz napisać to samo w instrukcji Select Case
Dim wiek As Byte wiek = InputBox("Ile masz lat", "Pytanie") Select Case wiek Case Is < 0 MessageBox.Show("To nie jest możliwe", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Warning) Case 0 To 15 MessageBox.Show("To jeszcze mentalnie dzieci", "Nieźle", MessageBoxButtons.OK, MessageBoxIcon.Information) Case 16 To 18 MessageBox.Show("Uważają się za dorosłych a wyglądają jak dzieci", "Prawda?", MessageBoxButtons.OK, MessageBoxIcon.Information) Case 19 To 39 MessageBox.Show("W kwiecie wieku :)", "Cudowny czas", MessageBoxButtons.OK, MessageBoxIcon.Information) Case 40 To 100 MessageBox.Show("Poczciwy wiek", "Złote lata", MessageBoxButtons.OK, MessageBoxIcon.Information) Case 100 To 110 MessageBox.Show("Białe kruki", "Niesamowite", MessageBoxButtons.OK, MessageBoxIcon.Information) Case Is > 110 MessageBox.Show("To niemożliwe", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Warning) End Select
Jak widać poprawiła się czytelność i ubyło kilka zbędnych znaków z kodu. Często instrukcja Select Case działa dużo szybciej niż If dlatego, że nie musi sprawdzać wyrażenia testowanego dla każdej instrukcji Case. Inaczej działa instrukcja If, która sprawdza wyrażenia testowane dla każdej instrukcji If oraz ElseIf. Wspomnieć jeszcze muszę o słowach kluczowych To oraz Is, pojawiających się w instrukcjach Select Case.
Słowo kluczowe To określa przedział wartości, do którego pasować powinna wartość wyrażenia testowanego.
Słowo kluczowe Is pozwala na wykonywanie porównania logicznego przy użyciu wartości testowanej.
Wartości testowane, to są te wartości które pojawiają się za instrukcją Select Case. W naszym przypadku jest to zmienna "wiek"
End Select to zakończenie działania instrukcji.
To było by na tyle w tej części poradnika.
Utworzono 07.09.2015r
Brak komentarzy:
Prześlij komentarz