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 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
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 bajty Date Data z przedz: 01.01.0001 do 31.12.9999 8 bajtów Byte Liczba bez znaku od 0 do 255 1 bajt Short Liczba od -32768 do +32767 2 bajty Integer Liczba od -2147483648 4 bajty do +2147483647 Long Liczba od - 9223372036854775808 8 bajtów do +9223372036854775807 Decimal 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 bajty do +3.4028235E+38 Double Liczba od -1.79769313486231E+308 8 bajtów do +1.79769313486231E+308 Char 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
Konwencje zapisu zmiennych Typ zmiennej Prefiks (przedrostek) Przykład Boolean b bCzyNowyProd Date dt dtDataZatrudn Byte byt bytMiesiac Short sht shtLicznik Integer i lub int iKoty Long l lub lng lPopulacja Decimal dec decWynikBadan Single sng sngCena Double d lub dbl dblDochod Char c cZnak String s lub str sNazwisko
Symbole typów danych Typ danych Symbol typu Przykład Boolean - True False Date - #23/08/2003# Byte - 0-255 Short S 3456S Integer I lub % 123I Long L lub & 15L Decimal D lub & 4.56D Single F lub ! 4.56F Double R lub # 4.56R Char C ”C”C String - ”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
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
Formatowanie wartości numerycznych za pomocą metody 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
Znaki formatujące (Formatting Placeholders) (maska) Opis Format cyfrowy. # . Format dziesiętny – określa pozycję dziesiętną , Separator tysięcy % Format procentu - + $ ( ) Znaki wbudowane w łańcuchu znaków
Przykłady formatowania Łańcuch formatu (Maska) Wartość Wartość po sformatowaniu 000000.000 123.45 000123.450 ###,###.00 1234.4 1,234.40 $###,###.00 $1,234.40 ###% 0.08 8% ##.00% 8.00% C $1234.40 F 1234.40
ZŁOŻENIA (KONKATENACJI) VB.Net 2. OPERATORY: ARYTMETYCZNE ZŁOŻENIA (KONKATENACJI) RELACJI LOGICZNE
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 Mod Arytmetyczny Dodawanie i odejmowanie + - Złożenie (Konkatenacja) &, + Relacja (Porównanie) =, <>, <, >, <=, >=, Like, Is Logiczny Nie NOT Logiczny Oraz (Koniunkcja) AND, AndAlso Logiczny Lub (Alternatywa) OR, OrElse
3. STRUKTURY STEROWANIA: VB.Net 3. STRUKTURY STEROWANIA: SELEKCJE
Instrukcje warunkowe (If) 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 prawdziwe End If
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ć.
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.
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łszem End If Uproszczona składnia instrukcji If..Else: If Wyrażenie logiczne Then Instrukcja1a [: InstrukcjaA1 [: ... [: InstrukcjaAn ]...]] Else InstrukcjaB1 [: [: ... [: InstrukcjaBm ]...]]
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")
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 prawdziwe ElseIf 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
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
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)
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
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
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
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
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
Select Case To Selekcja 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
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
Przykład połączenia Select Case, Select Case Is, Select Case To (1) 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
Opis = ”Starszy maluch” Case 10 To 14 Opis = ”Podlotek” Case Else Przykład połączenia Select Case, Select Case Is, Select Case To (2) 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
VB.Net 4. STRUKTURY DANYCH: TABLICE
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.
W VB.Net numer wymiaru tablicy zawsze rozpoczyna się od zera. Tablice deklaruje się tak samo jak zmienne podając: Nazwę tablicy. Typ danych. 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.
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: 0 1 2 3 4 5 6 7 9 1 Polecenie Wyniki(0,4)=9 spowoduje wprowadzenie liczby 9 do elementu stojącego na przecięciu zerowego numeru wiersza i czwartego elementu kolumny.
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 Single Dim Napis, Tytul As String Napis = ”Podaj najwyższą dzienną temperaturę ” Tytul= ”Temperatura” Dim i As Short For i=0 To UBound(Temp) Tytul = ”Dzień ” & (i+1) Temp(i) = InputBox(Napis, Tytul) Next
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 Single Dim Napis, Tytul As String Napis = ”Podaj najwyższą dzienną temperaturę ” Dim i As Short Dni = 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) Next ReDim Preserve Temp(10)
5. STRUKTURY STEROWANIA: VB.Net 5. STRUKTURY STEROWANIA: REPETYCJE
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
Repetycja (2): Do While - Loop Repetycja (3): While – End While Do While wyrażenie logiczne ciąg instrukcji Loop While wyrażenie logiczne ciąg instrukcji End While Ciąg instrukcji może nie zostać wykonany ani razu, jeżeli początkowa wartość wyrażenia logicznego przyjmie wartość logiczną False.
Do While ... Loop Repetycja 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.
Przykład użycia repetycji Do While: intLiczba = 0 Do 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.
Repetycja (4): Do - Loop While ciąg instrukcji Loop While wyrażenie logiczne Ciąg instrukcji zostanie wykonany przynajmniej jeden raz
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 prawdziwe Loop While (Wyrażenie logiczne) Charakterystyczne dla pętli Do While jest to, że Blok instrukcji wykona się na pewno przynajmniej raz.
I. Przykład użycia repetycji Do 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.
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 <> ""
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.
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łszem Loop Charakterystyczne dla repetycji Do Until, podobnie jak Do While, jest to, że blok instrukcji może nie zostać wykonany ani razu.
Przykład użycia repetycji Do Until … Loop: intLiczba = 0 Do 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.
Repetycja (6): Do - Loop Until 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.
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łszem Loop Until Wyrażenie logiczne Charakterystyczne dla repetycji Do Until jest to, że blok instrukcji wykona się na pewno przynajmniej raz
Przykład użycia repetycji Do 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.
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
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
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.
Przykład użycia repetycji For: intSuma = 0 For intLicznik = 2 To 100 Step 2 intSuma = intSuma + intLicznik Next intLicznik W zmiennej intSuma będzie suma wszystkich liczb parzystych od 0 do 100.
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
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)
For zm = w.p To w.k Step krok instrukcje Next Pętla strukturalna Do <True> instrukcje Loop Początek Do While warunek instrukcje Loop warunek T instrukcje N While warunek instrukcje End While Koniec For zm = w.p To w.k Step krok instrukcje Next
Do instrukcje Loop Until warunek Pętla strukturalna Początek Koniec
Do instrukcje Loop While warunek Początek instrukcje T warunek N Koniec
Do Until warunek instrukcje Loop Początek N warunek instrukcje T Koniec