vb2_if_c.d.pdf

(844 KB) Pobierz
Ćwiczenie VB2.1_If – instrukcja warunkowa (c.d)
Omawiając instrukcję warunkową powiedzieliśmy, że po słowie kluczowym If musi pojawić
się „warunek”. Warunek ten jest wyrażeniem logicznym, które zwraca True (Prawdę) lub
False (Fałsz). Wyrażenie to może być proste, np.
If txtWpis.Text = "Cze sc " Then
ale może też być bardziej złożone. Jako przykład rozważmy logowanie do systemu, podczas
którego musimy sprawdzać poprawność nie jednej lecz dwóch wartości. Niech formularz
logowania ma postać:
Rys. 1. Formularz logowania
Załóżmy, że poprawna Nazwa brzmi „abc”, a poprawne Hasło: „123”. Wtedy aplikacja,
w lblLogowania, drukuje komunikat: „Logowanie poprawne”
Aplikacja może być oprogramowana w sposób bardziej lub mniej przyjazny. Sposób mniej
przyjazny jest łatwiejszy do zrealizowania i polega na tym, że jeśli albo nazwa albo hasło nie
pasują do podanego wzorca to w etykiecie lblLosowanie pojawi się komunikat „Błąd logowa-
nia”.
Sposób bardziej przyjazny powinien podpowiadać, w którym polu popełniliśmy błąd. Komu-
nikaty o błędzie mogą być następujące: Błędna nazwa i hasło”, „Błędna nazwa”, Błędne
hasło”.
W wyrażeniach logicznych możemy stosować operatory logiczne AND i OR łączące proste
wyrażenia logiczne. Np.:
wyrażenie logiczne 1: Nazwa = ”abc”
 zwraca Prawdę, gdy w polu txtNazwa wpisano tekst ”abc”
 zwraca Fałsz, gdy w tym polu znajduje się inny tekst (także brak tekstu).
wyrażenie logiczne 2: Hasło = ”123”
 zwraca Prawdę gdy w polu txtHasło wpisano tekst „123”
 zwraca Fałsz, gdy w tym polu znajduje się inny tekst (także brak tekstu).
1
Copyright © 2011, Janusz Bonarowski
790604893.014.png
Oba te proste wyrażenia logiczne możemy połączyć operatorem AND, czyli napisać
wyrażenie logiczne:
Nazwa = ”abc” AND Hasło = ”123”
Takie wyrażenie logiczne także zwraca jedynie albo Prawdę albo Fałsz – zgodnie z tabelką:
Działanie operatora logicznego AND
Wyrażenie1 Wyrażenie2 Wyrażenie1 AND Wyrażenie2
Prawda Prawda Prawda
Prawda Fałsz Fałsz
Fałsz Prawda Fałsz
Fałsz Fałsz Fałsz
Tylko jeśli oba składowe wyrażenia logiczne zwracają Prawdę ich połączenie operatorem
AND zwraca Prawdę. W każdym innym przypadku otrzymujemy Fałsz.
Działanie operatora logicznego OR
Wyrażenie1 Wyrażenie2 Wyrażenie1 OR Wyrażenie2
Prawda Prawda Prawda
Prawda Fałsz Prawda
Fałsz Prawda Prawda
Fałsz Fałsz Fałsz
Jeśli jedno ze składowych wyrażeń logicznych zwracają Prawdę ich połączenie operatorem
OR zwraca Prawdę. Fałsz otrzymujemy jedynie wtedy, kiedy oba składniki wyrażenia
zawierają Fałsz.
Rys. 2. Schemat blokowy mniej przyjaznej realizacji algorytmu z operatorem AND
Kod odpowiadający algorytmowi z rys. 2 przedstawia Listing 1:
If txtNazwa.Text = "abc" And txtHaslo.Text = "123" Then
lblLogowanie.Text = "Logowanie poprawne"
Else
lblLogowanie.Text = "Błąd logowania"
End If
2
Copyright © 2011, Janusz Bonarowski
790604893.015.png 790604893.016.png 790604893.017.png 790604893.001.png 790604893.002.png 790604893.003.png 790604893.004.png 790604893.005.png 790604893.006.png 790604893.007.png 790604893.008.png 790604893.009.png 790604893.010.png 790604893.011.png
 
Schemat blokowy bardziej przyjaznego algorytmu z operatorem AND w instrukcji
warunkowej.
Rys. 3. Schemat blokowy bardziej przyjaznego algorytmu
Listing2 realizujący kod ze schematu na rys. 3:
If txtNazwa.Text = "abc" And txtHaslo.Text = "123" Then
lblLogowanie.Text = "Logowanie poprawne"
ElseIf txtNazwa.Text <> "abc" And txtHaslo.Text = "123" Then
lblLogowanie.Text = "Błędna nazwa"
ElseIf txtNazwa.Text = "abc" And txtHaslo.Text <> "123" Then
lblLogowanie.Text = "Błędne hasło"
Else
lblLogowanie.Text = "Błędna nazwa i hasło"
End If
3
Copyright © 2011, Janusz Bonarowski
790604893.012.png
Algorytm bardziej przyjazny można utworzyć bez posługiwania się operatorem AND, ale
trzeba wtedy umieszczać wewnątrz jednej instrukcji warunkowej druga instrukcję
warunkową.
Schemat blokowy takiego rozwiązania pokazuje rys. 4, a odpowiadający mu kod Listing3
Rys. 4. Schemat blokowy przyjaznego algorytmu bez operatora AND
Listing2
If txtNazwa.Text = "abc" Then
If txtHaslo.Text = "123" Then
lblLogowanie.Text = "Logowanie poprawne"
Else
lblLogowanie.Text = "Błędne hasło"
End If
Else
If txtHaslo.Text = "123" Then
lblLogowanie.Text = "Błędna nazwa"
Else
lblLogowanie.Text = "Błędna nazwa i hasło"
End If
End If
4
Copyright © 2011, Janusz Bonarowski
790604893.013.png
Zgłoś jeśli naruszono regulamin