• Nie Znaleziono Wyników

Ćwiczenie VB2.1_If – instrukcja warunkowa Je

N/A
N/A
Protected

Academic year: 2021

Share "Ćwiczenie VB2.1_If – instrukcja warunkowa Je"

Copied!
3
0
0

Pełen tekst

(1)

Copyright © 2009 Janusz Bonarowski 1

Ć wiczenie VB2.1_If – instrukcja warunkowa

Jeśli nie zastosujemy specjalnych technik - instrukcje w procedurach wykonywane są sekwencyjnie. Oznacza to, że wykonują się jedna po drugiej, poczynając od pierwszej, a kończąc na ostatniej, kolejno, żadnej nie opuszczając. Aby zmienić sekwencyjny porządek wykonywania instrukcji programu stosujemy instrukcję warunkową. Instrukcja warunkowa ma następującą składnię (postać pełna):

Listing1

If warunek1 Then

'Lista1 instrukcji wykonywanych ' gdy warunek1 jest spełniony.

ElseIf warunek2 Then

'Lista2 instrukcji wykonywanych ' gdy warunek2 jest spełniony.

ElseIf warunek3 Then

'Lista3 instrukcji wykonywanych ' gdy warunek3 jest spełniony.

'. . .

ElseIf warunekN Then

'ListaN instrukcji wykonywanych ' gdy warunekN jest spełniony.

Else

'Lista instrukcji wykonywanych

' gdy żaden z warunków nie został spełniony.

End If

'Pierwsza instrukcja po instrukcji warunkowej.

Instrukcja warunkowa musi rozpoczynać się od słowa kluczowego If i kończyć się słowami kluczowymi End If.

Działanie instrukcji warunkowej jest następujące:

Gdy program dochodzi do pierwszego wiersza instrukcji ze słowem kluczowym If sprawdzany jest warunek1. Jeżeli warunek1 posiada wartość True (Prawda) wykonywana jest Lista1 instrukcji, aż do najbliższej instrukcji ze słowem kluczowym ElseIf, Else lub End If. Gdy to nastąpi sterowanie programem opuszcza wszystkie pozostałe instrukcje bloku instrukcji warunkowej i dalsze wykonywanie programu kontynuowane jest od Pierwszej instrukcji po instrukcji warunkowej.

Jeżeli warunek1 ma wartość False (Fałsz) Lista1 instrukcji jest pomijana i sprawdzany jest warunek2. Jeśli warunek2 posiada wartość True (Prawda) wykonywana jest Lista2

instrukcji, aż do najbliższej instrukcji ze słowem kluczowym ElseIf, Elselub End If i następnie wykonywana jest Pierwsza instrukcja po instrukcji

warunkowej.

Jeżeli warunek2 ma wartość False (Fałsz) Lista2 instrukcji jest także pomijana i sprawdzany jest warunek3. Jeśli warunek3 posiada wartość True (Prawda) wykonywana jest Lista3 instrukcji, aż do najbliższej instrukcji ze słowem kluczowym ElseIf, Else lub End If i następnie wykonywana jest Pierwsza instrukcja po instrukcji warunkowej.

Bloków instrukcji:

ElseIf warunek Then 'Lista instrukcji może być dowolnie wiele.

Jeśli żaden z warunków nie zostanie spełniony (nie posiada wartości True (Prawda)) – sterowanie przechodzi do listy instrukcji znajdujących się po słowie kluczowym Else.

(2)

Copyright © 2009 Janusz Bonarowski 2 W ten sposób, w zależności od wartości warunków może być wykonywana inna grupa instrukcji programu.

Listing1 przedstawia pełną postać instrukcji warunkowej. Dla własnych potrzeb można taką postać redukować. Np. podczas rozwiązywania równania kwadratowego

obliczamy wyróżnik Delta, a następnie w zależności od jego wartości - obliczamy pierwiastki równania lub drukujemy komunikat o ich braku. Instrukcja warunkowa mogłaby mieć wtedy postać:

Listing 2

If Delta < 0 Then

'Komunikat o braku pierwiastków 'w zakresie liczb rzeczywistych.

ElseIf Delta = 0 Then

'Obliczenie jednego pierwiastka podwójnego.

Else

'Obliczenie dwóch różnych pierwiastków.

End If

Instrukcja warunkowa może być jeszcze bardziej zminimalizowana, patrz Listing 3.

Listing 3

If warunek Then

'Lista instrukcji Else

'Inna lista instrukcji End If

Lub jeszcze bardziej zredukowana, patrz Listing 4

Listing 4

If warunek Then

'Lista instrukcji End If

Przećwiczmy konstrukcje instrukcji warunkowej.

Zadanie

Zbudować aplikację symulującą dialog wg tabeli 1. Propozycja formularza przedstawiona jest na rys. 1

Tabela1 Wpis Odpowiedź Cześć Dzień dobry Witam Moje uszanowanie

Serwus Siema

Inny tekst Nie rozumiem

Rys. 1. Propozycja formularza

(3)

Copyright © 2009 Janusz Bonarowski 3 Kod aplikacji

Listing 5

Private Sub btnOdp_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles btnOdpowiedź.Click If txtWpis.Text = "Cześć" Then

lblOdp.Text = "Dzień dobry"

ElseIf txtWpis.Text = "Witam" Then lblOdp.Text = "Moje uszanowanie"

ElseIf txtWpis.Text = "Serwus" Then lblOdp.Text = "Siema"

Else

lblOdp.Text = "Nie rozumiem"

End If End Sub

--- Private Sub btnKoniec_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnKoniec.Click Application.Exit()

End Sub

Podczas testowania programu może wydać się niepożądanym fakt, że na formularzu może być widoczna następująca sytuacja. Po przetestowaniu pierwszej części instrukcji

warunkowej wpis brzmi „Cześć”, a odpowiedź „Dzień dobry”. Następnie zmieniamy wpis na

„Witam”, a odpowiedź w dalszym ciągu pozostaje „Dzień dobry” – co jest niezgodne z tabelą 1.

Rozwiązaniem takiego problemu może być oprogramowanie zdarzenia „zmiana tekstu w obiekcie txtWpis” w taki sposób, że gdy zmieniany jest tekst w txtWpis, to wówczas

kasowana jest zawartość etykiety lblOdp. Proponowany kod tej procedury zawiera Listing 6 Listing 6

Private Sub txtWpis_TextChanged(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles txtWpis.TextChanged lblOdp.Text = ""

End Sub

Cytaty

Powiązane dokumenty

łącznej wartości wynagrodzenia, o którym mowa w §4 ust. 1, Zamawiającemu przysługuje prawo odstąpienia od umowy w terminie 14 dni od dnia przekazania Wykonawcy wezwania

Olek pomalował dwa jajka na czerwono (dziecko kładzie przed sobą 2 czerwone pisanki), a Ada jedno na niebiesko (dziecko kładzie 1 niebieską pisankę). Kto pomalował więcej

Jeśli wyrażenie jest prawdziwe (wartość różna od zera – może być dodatnia lub ujemna) to wykonywana jest

Analogicznie, jak dla instrukcji czytania, instrukcja pisania odnosi się do listy wyrażeń wypisanych na wyjście (ekran, plik,

Z pewnością korci was, aby zapytać: „Co to takiego jest gaz doskonały i co w nim jest ‘doskonałego’?” Odpowiedzią jest prostota równań (20.5) i (20.9), które opisują

Jeśli jego wartość jest różna od zera, to obliczane jest wyrażenie w2 i jego wartość staje się wartością całego wyrażenia warunkowego.. W przeciwnym razie w2 jest

Jeśli wyrażenie w nawiasach jest prawdziwe, to wykonywana jest instrukcja1, natomiast instrukcja2 wówczas nie jest wykonywana.. W przeciwnym przypadku, jeśli wyrażenie w

Siatki centylowe służą do oceny rozwoju fizycznego dziecka – pozwalają określić, czy jego wzrost i waga są proporcjonalne do wieku. Te liczby na siatkach centylowych