instrukcje warunkowe

Transkrypt

instrukcje warunkowe
Instrukcje warunkowe
Instrukcje warunkowe pozwalają na wykonanie instrukcji (lub
bloku instrukcji) w zależności od tego, czy był spełniony lub nie,
pewien warunek.
Instrukcja IF (warunkowa)
If warunek Then instrukcja_Na_Tak Else Instrukcja_Na_Nie
Koniecznie całość instrukcji w jednej linii
Warunek decyduje która instrukcja zostanie wykonana.
Blok If (warunkowy) – ver. 1
If warunek Then
...
Blok_Instrukcji_Na_Tak
...
End If
Jeżeli spełniony jest warunek to wykona się blok instrukcji.
Private Sub Warunki()
‘.........
Dim a As Integer = 1
Dim b As Integer = 3
‘.........
If (a + b) = 3 Then
MsgBox("suma = 3")
End If
‘.........
End Sub
Wyświetli się komunikat, gdyż warunek jest prawdziwy.
Blok If (warunkowy) – ver. 2
If warunek Then
...
Blok_Instrukcji_Na_Tak
...
Else
...
Blok_Instrukcji_Na_Nie
...
End If
Jeśli jest spełniony warunek to wykona się Blok_Instrukcji_Na_Tak, w
przeciwnym wypadku Blok_Instrukcji_Na_Nie
Private Sub warunki()
Dim Okey As Boolean = False
‘.........
If Okey Then
MsgBox("Prawda")
Else
MsgBox("Fałsz")
End If
‘.........
End Sub
W wyniku działania instrukcji wyświetli się komunikat "Fałsz" (bo warunek nie
jest spełniony)
Blok If (warunkowy) – ver. 3
If warunek1 Then
Blok_Instrukcji_Na_Tak
....
ElseIf warunek2 Then
Blok_Instrukcji_Na_Tak_Dla_Warunku_2
.....
ElseIf warunek3 Then
Blok_Instrukcji_Na_Tak_Dla_Warunku_3
......
Else
Blok_Instrukcji
End If
Powyższej konstrukcji używamy jeśli chcemy sprawdzić zagnieżdzone warunki.
Jeśli warunek1 jest nieprawdziwy, to sprawdzany jest warunek2 itd. Jeżeli
żaden z nich nie jest spełniony, to wykona się blok_instrukcji po ELSE.
Private Sub Zagnieżdżony()
Dim t As String = "Kot"
.......
If t = "Pies" Then
MsgBox("t to Pies")
ElseIf t = "Mysz" Then
MsgBox("t to Mysz")
ElseIf t = "Kot" Then
MsgBox("t to Kot")
Else
MsgBox("Nieznany zwierzak")
End If
......
End Sub
Jak wiadomo zmienna t="Kot" więc wyświetli się komunikat "t to Kot".
Instrukcja wyboru
Instrukcja wyboru Select...Case
Select Case zmienna
Case lista_wartości_1
Blok_instrukcji_1
Case lista_wartości_2
Blok_instrukcji_2
.....
'Ewentualne kolejne Case ...
....
Case Else
Blok_instrukcji
End Select
Zasada działania Case jest następująca: sprawdzane jest czy aktualna wartość
zmiennej jest równa jednej z podanych wartości, po słowie kluczowym Case.
Czyli jeżeli zmienna = jednej z wartości wymienionych w "Lista_Wartości_1"
to wykona się "Blok_Instrukcji_1", a jeśli w "Lista_Wartości_2" to wykona się
"Blok_Instrukcji_2" itd., a jeżeli aktualna wartość zmiennej nie zostanie
znaleziona w żadnej z list, to wykona się "Blok_Instrukcji" (po Case Else).
Private Sub Wybierz()
Dim t As String = "kot"
.......
Select Case t
Case "Pies"
MsgBox("t to Pies")
Case "Kot"
MsgBox("t to Kot")
Case Else
MsgBox("t to ani pies ani kot")
End Select
.........
End Sub
W wyniku działania CASE wykona się instrukcja MsgBox("t to Kot")
Private Sub Wybierz()
Dim t As String = "Mysz"
......
Select Case t
Case "Pies", "Kot"
MsgBox("t to kot lub pies")
Case "Mysz"
MsgBox("t to Mysz")
Case Else
MsgBox("t jest nieznanym zwierzakiem")
End Select
. . . .. . .
End Sub
W wyniku działania CASE wykona się instrukcja MsgBox("t to Mysz")
Case może wykorzystywać w listach wartości także przedziały
Private Sub Wybierz()
Dim liczba As Integer = 5
.......
Select Case liczba
Case 1, 2 To 4
MsgBox("liczba to 1 lub 2 lub 3 lub 4")
Case Is >= 4
MsgBox("liczba jest większa lub równa 4")
Case 1 To 6
MsgBox("liczba to 5")
End Select
........
End Sub
Aktualna wartość zmiennej "LICZBA", spełnia zarówno warunek "Case Is >=
4" jak i "Case 1 To 6". W tej sytuacji brana pod uwagę jest pierwsza lista w
kolejności zamieszczenia. Ponieważ Case Is >= 4 jest pierwsza, to efektem
działania CASE będzie komunikat "liczba jest większa lub równa 4", po czym
nastąpi zakończenie, czyli End Select. Oznacza to że wykonywany jest tylko
jeden blok instrukcji (dla pierwszej znalezionej wartości).

Podobne dokumenty