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