VB.Net

62
VB.Net 1. ZMIENE I TYPY 2. OPERATORY 3. SELEKCJE 4. TABLICE 5. REPETYCJE

description

VB.Net. 1. ZMIENE I TYPY 2. OPERATORY 3. SELEKCJE 4. TABLICE 5. REPETYCJE. VB.Net. STRUKTURY DANYCH: ZMIENNE I TYPY. Konwencje nazw zmiennych. Słowa kluczowe oraz nazwy obiektów i klas rozpoczynaj od dużej litery np. Loop, Dim, FileStream - PowerPoint PPT Presentation

Transcript of VB.Net

Page 1: VB.Net

VB.Net

1. ZMIENE I TYPY 2. OPERATORY 3. SELEKCJE 4. TABLICE 5. REPETYCJE

Page 2: VB.Net

1. STRUKTURY DANYCH:

ZMIENNE I TYPY

VB.Net

Page 3: VB.Net

• Słowa kluczowe oraz nazwy obiektów i klas rozpoczynaj od dużej litery np. Loop, Dim, FileStream

• Rozpoczynaj nazwę zmiennej od małej litery stosując styl wielbłądzi (camel style) np. dataUrodz lub styl pascalowy np. DataUrodz

• Nazwę zmiennej rozpoczynaj od 2 lub 3-znakowego skrótu typu danych np. dtDataUrodz, cNazwPrac, intPodatekVAT. Są to tzw. prefiksy węgierskie - od nazwiska węgierskiego inżyniera Microsoftu Charles’a Simonyi

Konwencje nazw zmiennych

Page 4: VB.Net

Wspólny System Typów (Common Type System)

Typ danych Dopuszczalne wartości Zajętość pamięci

Boolean  True lub False (Prawda lub Fałsz) 2 bajtyDate Data z przedz: 01.01.0001 do 31.12.9999 8 bajtówByte Liczba bez znaku od 0 do 255 1 bajtShort Liczba od -32768 do +32767 2 bajtyInteger Liczba od -2147483648 4 bajty

do +2147483647Long Liczba od - 9223372036854775808 8 bajtów

do +9223372036854775807Decimal Liczba ze znakiem złożona max 16 bajtów

z 29 cyfr, nie większa niż 79228×1024

Single Liczba od -3.4028235E+38 4 bajtydo +3.4028235E+38

Double Liczba od -1.79769313486231E+308 8 bajtów do +1.79769313486231E+308Char Ciąg znaków Unicode od 0 do 65535 2 bajty

String Ciąg znaków Unicode od 0 do 231-1 zn.Object Dowolny typ danych

Page 5: VB.Net

Konwencje zapisu zmiennych

Typ zmiennej Prefiks (przedrostek) Przykład

Boolean  b bCzyNowyProdDate dt dtDataZatrudn

Byte byt bytMiesiacShort sht shtLicznikInteger i lub int iKotyLong l lub lng lPopulacja

Decimal dec decWynikBadanSingle sng sngCenaDouble d lub dbl dblDochod

Char c cZnakString s lub str sNazwisko

Page 6: VB.Net

Symbole typów danych

Typ danych Symbol typu Przykład

Boolean  - True FalseDate - #23/08/2003#

Byte - 0-255Short S 3456SInteger I lub % 123ILong L lub & 15L

Decimal D lub & 4.56DSingle F lub !4.56FDouble R lub # 4.56R

Char C ”C”CString - ”VB.Net”

Page 7: VB.Net

Deklaracje zmiennych

Ogólna postać deklaracji zmiennej:

Dim nazwa_zmiennej As typ_zmiennej

np. Dim licznikPowt As Integer

Dim wartProd As Single

Zmiennym podczas deklaracji można przypisać wartości np.

Dim intLiczba As Integer = 456789

Dim odpowiedz = False ‘ lub True

Page 8: VB.Net

Inne przykłady deklaracji zmiennych

Dim i As Integer = 21

Dim dToday As Date = Today()

Dim dblFloat As Double = 1232.23312

Dim dBirthday As Date = #1/1/1995#

Dim iCalculate As Integer = i * 5

Dim I, J, X As Integer

Page 9: VB.Net

• Metoda konwersji ToString przypisuje argumentowi łańcuchowemu format danej

• Znaki specjalne użyte są do zdefiniowania formatu

lblGain.Text = mdblGain.ToString("$##,###.##")

zmienna

metoda ToString

argument definiuje sposób formatowania wartości

Formatowanie wartości numerycznych za pomocą metody

Page 10: VB.Net

Znak

(maska)Opis

0 Format cyfrowy.

# Format cyfrowy.

. Format dziesiętny – określa pozycję dziesiętną

, Separator tysięcy

% Format procentu

- + $ ( ) Znaki wbudowane w łańcuchu znaków

Znaki formatujące (Formatting Placeholders)

Page 11: VB.Net

Przykłady formatowania

Łańcuch formatu (Maska)

Wartość Wartość po sformatowaniu

000000.000 123.45 000123.450

###,###.00 1234.4 1,234.40

$###,###.00 1234.4 $1,234.40

###% 0.08 8%

##.00% 0.08 8.00%

C 1234.4 $1234.40

F 1234.4 1234.40

Page 12: VB.Net

VB.Net

2. OPERATORY:

ARYTMETYCZNEZŁOŻENIA (KONKATENACJI)

RELACJILOGICZNE

Page 13: VB.Net

Priorytety operatorów

Kategoria Operator Symbol

Arytmetyczny  Potęgowanie ^Arytmetyczny Negacja (minus) -Arytmetyczny Mnożenie oraz dzielenie zmiennoprzec. * / Arytmetyczny Dzielenie całkowite \Arytmetyczny Reszta z dzielenia ModArytmetyczny Dodawanie i odejmowanie + -

Złożenie (Konkatenacja) &, +

Relacja (Porównanie) =, <>, <, >,<=, >=,Like, Is

Logiczny Nie NOTLogiczny Oraz (Koniunkcja) AND,

AndAlsoLogiczny Lub (Alternatywa) OR, OrElse

Page 14: VB.Net

3. STRUKTURY STEROWANIA:SELEKCJE

VB.Net

Page 15: VB.Net

If – Then <wersja z blokiem instrukcji>

Selekcja if dokonuje ona sprawdzenia podanego warunku i jeżeli jest on prawdziwy (ma wartość TRUE) wykonywany jest blok instrukcji. W przypadku gdy warunek jest fałszywy blok ten jest omijany.Składnia:

If Wyrażenie logiczne Then   Blok instrukcji VB wykonywany gdy Wyrażenie logiczne jest prawdziweEnd If

Instrukcje warunkowe (If)

Page 16: VB.Net

If – Then <wersja z uproszczoną składnią instrukcji>

Uproszczona składnia selekcji If:

If Wyrażenie logiczne Then Instrukcja1 [: Instrukcja2 [: ... [: InstrukcjaN ]...]]

Uproszczoną składnię selekcji If można użyć, gdy ma być wykonana tylko jedna instrukcja (lub kilka krótkich instrukcji oddzielonych od siebie dwukropkami), a nie cały blok. Nawiasy [] oznaczają, że wyrażenia te są opcjonalne, tzn., że wymagany jest tylko jedna instrukcja za Then, a pozostałe mogą lecz nie muszą występować.

Page 17: VB.Net

Przykład użycia selekcji If:

If intZysk > 1200 Then   intPodatek = 20   intWiadomosc = MsgBox("Zapłacisz większy podatek")End If

Zapis w postaci uproszczonej:

If intZysk>1200 Then intPodatek = 20 : intWiadomosc = MsgBox("Zapłacisz większy podatek")

Zapisywanie wyrażeń logicznych w nawiasach nie jest konieczne, jednak poprawia czytelność zapisu, szczególnie, jeżeli sprawdzany warunek jest rozbudowany. Zapis uproszczony jest przydatny przy konieczności wykonania małej liczby krótkich instrukcji, jednak dla zachowania przejrzystości programu zaleca się stosowanie pełnej wersji zapisu.

Page 18: VB.Net

If - Then - Else

W przypadku gdy wyrażenie logiczne ma wartość TRUE wykonuje ona blok rozkazów zawarty między Then i Else, gdy zaś warunek ma wartość FALSE wykonuje blok rozkazów zawarty między Else i End If. Składnia:

If Wyrażenie logiczne Then   Blok instrukcji wykonywany gdy Wyr.log. jest prawdąElse   Blok instrukcji wykonywany gdy Wyr.log jest fałszemEnd If

Uproszczona składnia instrukcji If..Else:

If Wyrażenie logiczne Then Instrukcja1a [: InstrukcjaA1 [: ... [: InstrukcjaAn ]...]] Else InstrukcjaB1 [: [: ... [: InstrukcjaBm ]...]]

Page 19: VB.Net

Przykład użycia selekcji If – Then - Else:

If (intZysk>1200) Then   intPodatek=20   intWiadomosc=MsgBox("Musisz zapłacić większy podatek")Else   intPodatek=7   intWiadomosc=MsgBox("Możesz zapłacić mniejszy podatek"")End If

Zapis w formie uproszczonej (nie zaleca się używać !):

If (intZysk>1200) Then intPodatek=20 : intWiadomosc=MsgBox("Zapłacisz większy podatek") Else intPodatek=7 : intWiadomosc=MsgBox("Możesz zapłacić mniejszy podatek")

Page 20: VB.Net

If – Then – ElseIf

Możliwość zagnieżdżania selekcji If..Else wymusiło powstanie konstrukcji If...ElseIf. Pozwala ona na kolejne sprawdzanie wielu wyrażeń logicznych.Składnia:

If Wyrażenie logiczne1 Then   Blok instrukcji wykonywany gdy Wyr.log. jest prawdziweElseIf Wyrażenie logiczne2 Then   Blok instrukcji wykonywany gdy Wyr.log1 nie jest prawdą a Wyrażenie logiczne2 jest prawdą    ...[ElseIf Wyrażenie logiczneN Then    Blok instrukcji wykonywany gdy Wyr.log. od 1 do (N-1) nie są prawdą a Wyr.logiczneN jest prawdą   ]...] [Else    Blok instrukcji wykonywany gdy żadne z Wyr.log. od 1 do N nie jest prawdą ]End If

Page 21: VB.Net

Przykład użycia instrukcji If – Then – ElseIf

If (intZysk>1200) Then   intPodatek=20   intWiadomosc=MsgBox("Musisz zapłacić duży podatek") ElseIf (intZysk>700) Then    intPodatek=16    intWiadomosc=MsgBox("Musisz zapłacić 16% podatku")  ElseIf (intZysk>400) Then      intPodatek=7     intWiadomosc=MsgBox("Musisz zapłacić 7% podatku")   ElseIf (intZysk>200) Then      intPodatek=4      intWiadomosc=MsgBox("Masz mało ale i tak płać!")    ElseIf (blnPracuje=False) Then       intWiadomosc=MsgBox("Chyba ktoś Cię utrzymuje")Else   intPodatek=0   intWiadomosc=MsgBox("Z czego Ty żyjesz?")End If

Page 22: VB.Net

Omówienie przykładu:

W pierwszym wyrażeniu logicznym sprawdzana jest wartość zmiennej intZysk. Jeżeli jest ona większa od 1200 to zmiennej intPodatek przypisywana jest wartość 20 i wyświetlane okno z komunikatem. Jeżeli jest mniejsza lub równa 1200 to sprawdzane jest kolejne wyr.logiczne (intZysk>700). Jeżeli wartość intZysk jest większa od 700, czyli znajduje się w przedziale (700,1200>, to zmiennej intPodatek przypisywana jest wartość 16 i wyświetlane jest okno z komunikatem. Jeżeli jest mniejsza lub równa 700 sprawdzany jest kolejne wyrażenie logiczne. Jeżeli po sprawdzeniu kolejnych wyrażeń okaże się że wartość zmiennej intZysk jest mniejsza lub równa 200, sprawdzana jest wartość zmiennej blnPracuje. Jeżeli jej wartością jest False to podane wyrażenie logiczne blnPracuje=False jest prawdziwe i przyjmuje wartość TRUE oraz wyświetlany jest komunikat ("Chyba ktoś Cię utrzymuje") i selekcja kończy działanie. Gdy jednak żaden z wyr.logicznych selekcji nie został spełniony to wykonywany jest blok instrukcji za Else. Zmiennej intPodatek przypisywana jest wartość 0 i wyświetlane jest okno komunikatu.

Selekcja If – Then – ElseIf może sprawdzać wyrażenia logiczne dla różnych zmiennych (dla zmiennej blnPracuje oraz intZysk)

Page 23: VB.Net

Instrukcja wyboru (Select - Case)

Select Case zmienna

Case wyrażenie_logiczne_1

Ciąg instrukcji 1

Case wyrażenie_logiczne_2

Ciąg instrukcji 2

Case Else

Ciąg instrukcji 3

End Select

Page 24: VB.Net

Select Case

Jest to selekcja, która zastępuje zagnieżdżone selekcje If - ElseIf, gdy konieczne jest wybieranie pomiędzy wieloma dostępnymi opcjami. Select Case sprawdza wyrażenia i wybiera jeden odpowiedni blok instrukcji.Składnia:

Select Case Wyrażenie Case Wartość1    Blok instrukcji wykonywany gdy Wyrażenie=Wartość1 Case Wartość2    Blok instrukcji wykonywany gdy Wyrażenie=Wartość2 ...  [Case WartośćN    Blok instrukcji wykonywany gdy Wyrażenie=WartośćN  ]...]  [Case Else    Blok instrukcji wykonywany gdy Wyrażenie jest różne od wszystkich Wartości od 1 do N]End Select

Page 25: VB.Net

Przykład użycia selekcji Select Case:

Select Case intZysk Case 1200, 1000   intPodatek=20   intWiadomosc=MsgBox("Musisz zapłacić olbrzymi podatek") Case 700   intPodatek=16   intWiadomosc=MsgBox("Musisz zapłacić 16% podatku") Case intInnyZysk   intPodatek=7   intWiadomosc=MsgBox("Musisz zapłacić 7% podatku") Case (100+100)   intPodatek=4   intWiadomosc=MsgBox("Masz mało ale i tak płać!") Case Else   intPodatek=0   intWiadomosc=MsgBox("Masz inny zysk")End Select

Page 26: VB.Net

Select Case Is

Selekcja Select Case Is jako wartości do porównania z wyrażeniem może używać tylko relacji.

Składnia:

Select Case Wyrażenie Case Is Relacja1   Blok instrukcji wykonywany gdy Relacja1 z Wyrażeniem jest TRUE [Case Is Relacja2   Blok instrukcji wykonywany gdy Relacja3 z Wyrażeniem jest TRUE ...  [Case Is RelacjaN   Blok instrukcji wykonywany gdy Relacja4 z Wyrażeniem jest TRUE  ]...] [Case Else   Blok instrukcji wykonywany gdy wszystkie podane Relacje z Wyrażeniem jest FALSE]End Select

Page 27: VB.Net

Przykład użycia selekcji Select Case Is:

Select Case intZysk Case Is>1200   intPodatek=20   intWiadomosc=MsgBox("Musisz zapłacić olbrzymi podatek") Case Is>700   intPodatek=16   intWiadomosc=MsgBox("Musisz zapłacić 16% podatku") Case Is>=intInnyZysk, Is>=400   intPodatek=7   intWiadomosc=MsgBox("Musisz zapłacić 7% podatku") Case Is <(100+100)   intPodatek=4   intWiadomosc=MsgBox("Z czego Ty żyjesz?!") Case Else   intPodatek=0   intWiadomosc=MsgBox("Masz mało ale i tak płać.")End Select

Page 28: VB.Net

Select Case ToSelekcja Select Case To jako wartości do porównania z wyrażeniem może używać tylko przedziałów.

Składnia:

Select Case Wyrażenie Case Wartość1a To Wartość1b   Blok instrukcji wykonywany gdy Wyrażenie <Wartość1a, Wartość1b> Case Wartość2a To Wartość2b   Blok instrukcji wykonywany gdy Wyrażenie <Wartość2a, Wartość2b>  ...  [Case WartośćNa To WartośćNb   Blok instrukcji wykonywany gdy Wyrażenie <WartośćNa, WartośćNb>  ]...] [Case Else   Blok instrukcji wykonywany gdy Wyrażenie nie należy do żadnego podanego przedziału]End Select

Page 29: VB.Net

Przykład użycia selekcji Select Case To:

Select Case intZysk Case 700 To 1200   intPodatek=20   intWiadomosc=MsgBox("Musisz zapłacić duży podatek") Case intInnyZysk To 700   intPodatek=16   intWiadomosc=MsgBox("Musisz zapłacić 16% podatku") Case 0 To (100+100), 250 To 300   intPodatek=0   intWiadomosc=MsgBox("Z czego Ty żyjesz?!") Case Else   intPodatek=4   intWiadomosc=MsgBox("Masz mało ale i tak płać.")End Select

Page 30: VB.Net

Select Case intZysk Case 700 To 1200   intPodatek=20   intWiadomosc=MsgBox("Musisz zapłacić duży podatek") Case intInnyZysk   intPodatek=16   intWiadomosc=MsgBox("To chyba nie tak wiele") Case Is<(100+100)   intPodatek=0   intWiadomosc=MsgBox("Z czego Ty żyjesz?!") Case Is>2000, 2500 To 3000, 5000   intWiadomosc=MsgBox("Nieźle!") Case Else   intPodatek=4   intWiadomosc=MsgBox("Twój zysk jest między 200 a 700 ale nie" & intInnyZysk)End Select

Przykład połączenia Select Case, Select Case Is, Select Case To (1)

Page 31: VB.Net

Select Case liczbaLat

Case < 1

Opis = ”Niemowlę”

Case 1 To 7

Opis = ”Maluch”

Case 8, 9

Opis = ”Starszy maluch”

Case 10 To 14

Opis = ”Podlotek”

Case Else

Opis = ”Jak go nazwać ?”

End Select

Przykład połączenia Select Case, Select Case Is, Select Case To (2)

Page 32: VB.Net

4. STRUKTURY DANYCH:

TABLICE

VB.Net

Page 33: VB.Net

Deklaracja tablic

Ogólna postać deklaracji tablicy:

Dim nazwa_tablicy(wymiary) As typ_zmiennych

np. Dim Prostopadloscian(7,4,9) As Integer

Dim wartoscProdukcji(5) As Single

Tablicom podczas deklaracji można przypisać wartości np.

Dim strRozmiar(1) As String = {”Mały”, ”Duży”}

Pierwszy element tablicy ma zawsze wartość równą zeru.

Page 34: VB.Net

W VB.Net numer wymiaru tablicy zawsze rozpoczyna się od zera.

Tablice deklaruje się tak samo jak zmienne podając:

1. Nazwę tablicy.

2. Typ danych.

3. Liczbę wymiarów.

Tablice, które zawsze zawierają stałą liczbę elementów w każdym wymiarze nazywa się tablicami o stałej wielkości. Tablice o zmiennej liczbie elementów nazywa się tablicami dynamicznymi.

Składnia tablicy o stałej wielkości:

Dim NazwaTabl(IndWym1, IndWym2, …, IndWymN) As TypDanych

Funkcją UBound(NazwaTabl) sprawdza się górną granicę tablicy, czyli największy indeks.

Page 35: VB.Net

Przykład:

Deklaracja tablicy postaci: Dim Wyniki(1,7) As Integer spowoduje zarezerwowanie miejsca w pamięci na tą tablicę. Wygląd miejsca po zadeklarowaniu tablicy Wyniki:

90

1

0 1 2 3 4 5 6 7

Polecenie Wyniki(0,4)=9 spowoduje wprowadzenie liczby 9 do elementu stojącego na przecięciu zerowego numeru wiersza i czwartego elementu kolumny.

Page 36: VB.Net

Tablice można deklarować i inicjować w jednej deklaracji-poleceniu:

Dim Tablica() As Integer = {5,10, 15, 20}

Należy zwrócić uwagę na nawiasy klamrowe(!).

Przykład wykorzystania funkcji UBound:

Dim Temp(6) As SingleDim Napis, Tytul As StringNapis = ”Podaj najwyższą dzienną temperaturę ”Tytul= ”Temperatura”Dim i As ShortFor i=0 To UBound(Temp) Tytul = ”Dzień ” & (i+1) Temp(i) = InputBox(Napis, Tytul)Next

Page 37: VB.Net

Tablice dynamiczne:

Wielkość tablicy dynamicznej określa użytkownik programu lub algorytm programu wyznacza ją na podstawie pewnych warunków.

W tym celu stosuje się polecenie ReDim.

Przykład:

Dim Temp() As SingleDim Napis, Tytul As StringNapis = ”Podaj najwyższą dzienną temperaturę ”Dim i As ShortDni = InputBox(”Ile dni ?”, ”Utwórz tablicę”)If Dni > 0 Then ReDim Temp(Dni – 1)For i=0 To UBound(Temp) Tytul = ”Dzień ” & (i+1) Temp(i) = InputBox(Napis, Tytul)NextReDim Preserve Temp(10)

Page 38: VB.Net

5. STRUKTURY STEROWANIA:

REPETYCJE

VB.Net

Page 39: VB.Net

Repetycja (1): Do - Loop

Do

ciąg instrukcji

Loop

Jest to pętla nieskończona (!)

Wyjście z pętli wykonuje się po wprowadzeniu instrukcji:

Exit Do

Page 40: VB.Net

Repetycja (2): Do While - Loop

Do While wyrażenie logiczne

ciąg instrukcji

Loop

Ciąg instrukcji może nie zostać wykonany ani razu, jeżeli początkowa wartość wyrażenia logicznego przyjmie wartość logiczną False.

Repetycja (3): While – End While

While wyrażenie logiczne

ciąg instrukcji

End While

Page 41: VB.Net

Do While ... LoopRepetycja typu Do While najczęściej występuje w VB.Net. Wymaga ona zastosowania wyrażenia logicznego. Wykorzystuje do tego celu operatory relacji. Repetycja ta jest ograniczona słowami kluczowymi Do While i Loop. Blok instrukcji jest wykonywany tak długo jak długo podane wyrażenie logiczne jest prawdziwe. Ważne jest, aby w bloku instrukcji repetycji umieścić instrukcje, które doprowadzą do tego, aby wartość wyrażenia logicznego stała się fałszem. W przeciwnym razie pętla się nie zakończy. Składnia:

Do While (Wyrażenie logiczne)   Blok instrukcji jest wykonywany dopóki Wyrażenie logiczne jest prawdąLoop

Jeżeli wyrażenie logiczne jest fałszem już na samym początku przed wykonaniem repetycji, to blok instrukcji nie zostanie wykonany ani razu.

Page 42: VB.Net

Przykład użycia repetycji Do While:

intLiczba = 0Do While intLiczba < 100   intLiczba = InputBox("Wpisz liczbę:")Loop

Zmiennej intLiczba przypisywana jest wartość 0. Sprawdzany jest warunek repetycji i ponieważ jest on prawdziwy (0<100) wykonywany jest blok instrukcji. W bloku repetycji pobierana jest od użytkownika liczba, która jest podstawiana pod zmienną intLiczba. Repetycja kontynuuje swoje działanie do czasu, kiedy użytkownik wprowadzi liczbę większą lub równą 100. Wtedy wyrażenie logiczne stanie się fałszem i repetycja zakończy swoje działanie.

Page 43: VB.Net

Repetycja (4): Do - Loop While

Do

ciąg instrukcji

Loop While wyrażenie logiczne

Ciąg instrukcji zostanie wykonany przynajmniej jeden raz

Page 44: VB.Net

Do...Loop While

Blok instrukcji jest wykonywany tak długo jak długo wyrażenie logiczne jest prawdą. Ważne jest, aby w bloku instrukcji repetycji umieścić instrukcje, które doprowadzą do tego, żeby wartość wyrażenia logicznego stała się fałszem. W przeciwnym razie pętla się nie zakończy. W przeciwieństwie do repetycji Do While Wyrażenie logiczne umieszczone jest na końcu repetycji i jest sprawdzane po wykonaniu bloku instrukcji.Składnia:

Do Blok instrukcji jest wykonywany dopóki Wyrażenie logiczne jest prawdziweLoop While (Wyrażenie logiczne)

Charakterystyczne dla pętli Do While jest to, że Blok instrukcji wykona się na pewno przynajmniej raz.

Page 45: VB.Net

I. Przykład użycia repetycji Do...Loop While:

Do    intLiczba = InputBox("Wpisz liczbę:")Loop While intLiczba<100

W bloku repetycji pobierana jest od użytkownika liczba, która jest podstawiana pod zmienną intLiczba. Repetycja kontynuuje swoje działanie do czasu, kiedy użytkownik wprowadzi liczbę większą lub równą 100. Wtedy wyrażenie logiczne stanie się fałszywe i repetycja zakończy swoje działanie.

Page 46: VB.Net

II. Przykład użycia repetycji Do...Loop While:

Dim Pierwiastek As Single Dim strLiczba As String Dim Napis1 As String = ”Pierwiastkowanie:" Dim Napis2 As String = ”Twoja liczba:" Do strLiczba = InputBox(Napis2, Napis1) If strLiczba <> "" And IsNumeric(strLiczba) Then Pierwiastek = Sqrt(CSng(strLiczba))

MsgBox(Pierwiastek, ”Wynik:") End If Loop While strLiczba <> ""

Page 47: VB.Net

Repetycja (5): Do Until - Loop

Do Until wyrażenie logiczne

ciąg instrukcji

Loop

Ciąg instrukcji będzie wykonywany, dopóki wartość wyrażenia logicznego będzie miała wartość logiczną False.

Inaczej mówiąc: ciąg instrukcji będzie wykonywany aż do spełnienia warunku.

Page 48: VB.Net

Do Until … Loop

Jest repetycją podobną do Do While. Jedyna różnica polega na tym, że repetycja Do While wykonuje zawarty w niej blok rozkazów tak długo, jak długo podane wyrażenie logiczne jest fałszem. Składnia:

Do Until Wyrażenie logiczne   Blok instrukcji jest wykonywany gdy Wyrażenie logiczne jest fałszemLoop

Charakterystyczne dla repetycji Do Until, podobnie jak Do While, jest to, że blok instrukcji może nie zostać wykonany ani razu.

Page 49: VB.Net

Przykład użycia repetycji Do Until … Loop:

intLiczba = 0Do Until intLiczba > 100   intLiczba = InputBox("Wpisz liczbę:")Loop

Repetycja kontynuuje swoje działanie do czasu, kiedy użytkownik wprowadzi liczbę mniejszą lub równą 100. Wtedy wyrażenie logiczne stanie się prawdą i repetycja zakończy swoje działanie.

Page 50: VB.Net

Repetycja (6): Do - Loop Until

Do

ciąg instrukcji

Loop Until wyrażenie logiczne

Ciąg instrukcji będzie wykonywany, dopóki wartość wyrażenia logicznego będzie miała wartość logiczną False.

Inaczej mówiąc: ciąg instrukcji będzie wykonywany aż do spełnienia warunku.

Page 51: VB.Net

Do...Loop Until

Jest inną formą repetycji Do Until. Blok instrukcji jest wykonywany tak długo, jak długo podane wyrażenie logiczne jest fałszem. W przeciwieństwie do repetycji Do Until Wyrażenie logiczne umieszczone jest na końcu repetycji i jest ono sprawdzane po wykonaniu bloku instrukcji.Składnia:

Do   Blok instrukcji jest wykonywany gdy Wyrażenie logiczne jest fałszemLoop Until Wyrażenie logiczne

Charakterystyczne dla repetycji Do Until jest to, że blok instrukcji wykona się na pewno przynajmniej raz

Page 52: VB.Net

Przykład użycia repetycji Do...Loop Until:

Do    intLiczba = InputBox("Wpisz liczbę:")Loop Until intLiczba < 100

Repetycja kontynuuje swoje działanie do czasu, kiedy użytkownik wprowadzi liczbę mniejszą lub równą 100. Wtedy wyrażenie logiczne stanie się prawdą i repetycja zakończy swoje działanie.

Page 53: VB.Net

Exit Do

Powoduje przejście do instrukcji znajdującej się bezpośrednio za repetycją. Przykład:

W przypadku gdyby wartości zmiennych intLicznik i intStala były takie same, wygenerowany zostałby błąd dzielenia przez 0. Stąd konieczne jest zabezpieczenie, które kończy działanie pętli, gdy wartości te będą sobie równe.

Do intLiczba = InputBox("Podaj liczbę:") if (intLiczba = intStala) Then Exit Do End If    sngWynik = 1/(intStala - intLiczba)    intWiadomosc = MsgBox(sngWynik)Loop While intLiczba > 0

Page 54: VB.Net

Repetycja (7): For - Next

For zmienna = w.pocz To w.końc Step krok

ciąg instrukcji

Next

Dim licznik, suma As Short

Dim Wektor(10) As Short

For licznik = 10 To 0 Step -1

Suma = Suma + Wektor(licznik)

Next

Page 55: VB.Net

For ... Next

Pozwala ona na wielokrotne powtarzanie bloku instrukcji ściśle określoną ilość razy (w przeciwieństwie do repetycji typu Do). Składnia:

For ZmiennaLicznik = WartośćPoczątkowa To WartośćKońcowa [Step WartośćKroku]   Blok instrukcji VB wykonywany jest, gdy ZmiennaLicznik <= WartośćKońcowa (jeżeli WartośćKroku jest dodatnia), lub gdy ZmiennaLicznik>= WartośćKońcowa (gdy WartośćKroku jest ujemna)Next [ZmiennaLicznik]

Wyrażenia w nawiasach [] są opcjonalne i nie muszą występować w repetycji. W przypadku, gdy pominięta zostanie część rozkazu określająca WartośćKroku, VB.Net przyjmie domyślną WartośćKroku=1. Wpisywanie ZmiennejLicznik za słowem Next nie jest konieczne, jednak poprawia czytelność i analizę zapisu, szczególnie przy zagnieżdżonych repetycjach For.

Page 56: VB.Net

Przykład użycia repetycji For:

intSuma = 0For intLicznik = 2 To 100 Step 2   intSuma = intSuma + intLicznikNext intLicznik

W zmiennej intSuma będzie suma wszystkich liczb parzystych od 0 do 100.

Page 57: VB.Net

Exit For

Powoduje przejście do instrukcji znajdującej się bezpośrednio za repetycją (za Next [ZmiennaLicznik]). Przykład:

Istota funkcjonowania instrukcji Exit For jest podobna do zasady funkcjonowania instrukcji Exit Do.

For intLicznik = 1 To 10 if (intLiczba = intLicznik) Then Exit For End If sngWynik = 1 / (intLicznik - intLiczba) intWiadomosc = MsgBox(sngWynik)Next intLicznik

Page 58: VB.Net

Zestawienie rodzajów repetycji w VB.Net

(1) Do ~~ Loop

(2) Do While (wyr.log) ~~ Loop

(3) While (wyr.log) ~~ End While

(4) Do ~~ Loop While (wyr.log)

(5) Do Until (wyr.log) ~~ Loop

(6) Do ~~ Loop Until (wyr.log)

(7) For ~~ Next

Wyjścia z pętli: Exit Do (1,2,4,5,6)Exit While (3)Exit For (7)

Page 59: VB.Net

Początek

instrukcje

Koniec

warunekT

N

Do While warunek

instrukcje

Loop

While warunek

instrukcje

End While

For zm = w.p To w.k Step krok

instrukcje

Next

Do <True>

instrukcje

Loop

Pętla strukturalna

Page 60: VB.Net

Początek

instrukcje

Koniec

warunek

T

N

Do

instrukcje

Loop Until warunek

Pętla strukturalna

Page 61: VB.Net

Początek

instrukcje

Koniec

warunek

N

T

Do

instrukcje

Loop While warunek

Page 62: VB.Net

Początek

instrukcje

Koniec

warunekN

T

Do Until warunek

instrukcje

Loop