A Visual Basic programozási nyelv

Utasítások, vezérlési szerkezetek

1. Értékadás

Egy változónak az = operátorral adhatunk értéket. Megengedett az egy sorba írt többszörös értékadás is.

Példa:

x = 5000: y = 1000

2. Szekvencia

Visual Basicben általában egy sor csak egy utasítást tartalmaz, és az egymást követő sorokban levő utasítások szekvenciája a program. Lehetőség van egy sorba több utasítást is írni, ezeket : jellel kell elválasztani. Az utasítások végét nem kell semmilyen karakterrel jelölni, és a : karakter is csak az utasítások elválasztására szolgál.

A With utasítás:

A With utasítást akkor használjuk, ha egy objektumon több utasítást szeretnénk végrehajtani egymás után. Használatakor nem kell kiírni az objektum nevét, csak azt a tagját, amire hivatkozunk. Így gyorsíthatjuk a programot, felesleges gépeléstől kíméljük meg magunkat, és a kód is olvashatóbb lesz.

With Font 
 .Name="Arial"
 .Bold=True
 .Size=5
End With

A With utasításblokkok egymásba ágyazhatók, de ilyenkor a belső blokkban a külső blokkban megadott objektum tulajdonságaira csak az objektumnév megadásával hivatkozhatunk.

With MyForm .Caption="Az én űrlapom" With .MyTextBox .Text="Az én szövegdobozom" .Caption="Mégsem az én űrlapom" ' Hibás hivatkozás End With End With

3. Elágazások

Három elágazásos utasításcsoportot találhatunk a nyelvben:

If feltétel then utasítás

vagy

If feltétel then utasítások EndIf

Ha a feltétel teljesül, akkor végrehajtja az utasításokat. A feltételnek összehasonlításnak vagy numerikusra kiértékelhető kifejezésnek kell lennie.

If feltétel1 then utasítások1 ElseIf feltétel2 then utasítások2 Else utasítások EndIf

Ha a feltétel1 teljesül, akkor végrehajtja az utasítások1-ben szereplő utasításokat. Ha nem teljesül, akkor megvizsgálja a feltétel2-t, és így tovább. Azt a Then ágat hajtja végre először, amelyiknél a feltétel teljesül. Ha nincs ilyen, akkor az Else ágat hajtja végre, ha van ilyen.

A Visual Basic az If .. Then .. Else szerkezet alternatívájaként tartalmazza az IIf és a Switch függvényeket.

IIf(Kifejezés, Érték-1, Érték-2)

Switch(Kifejezés-1, Érték-1[, Kifejezés-2, Érték-2 … [, Kifejezés-n,Érték-n]])

Az IIf függvény a megadott Kifejezés Igaz értéke esetén Érték-1-et, Hamis értéke esetén Érték-2-t adja vissza. A függvény valamennyi paraméterét kiértékeli. (azaz ha például Érték-2 egy függvényhívás eredményeként áll elő, akkor a függvény Kifejezés értékétől függetlenül meghívásra kerül.)

A Switch függvény hasonlóan működik, az első igaz értékű Kifejezés-k-hoz tartozó Érték-et adja vissza. A kiértékelés itt is teljes, minden kifejezés kiértékelésre kerül.

Choose( Index, Érték-1 [, Érték-2, … [,Érték-n]])

A Choose függvénnyel egy index alapján tudunk a több lehetőség közül egyet visszaadni.

Select Case szelektor Case szelektor_lista1 utasítások1 Case szelektor_lista2 utasítások2 Case Else utasítások End Select

Kiértékeli a szelektort, és azt az ágat hajtja végre, amelyiknél a szelektor_listában szerepel a kiértékelés eredménye. A szelektor_listában több értéket is felsorolhatunk (ezeket ","-vel kell elválasztani), de megadhatunk intervallumot is (a To kulcsszóval). Ha több illeszkedő Case ág is van, akkor az elsőt hajtja végre csak, a többit nem. A szelektor értékére a szelektor listában az Is kulcsszóval hivatkozhatunk.

Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber
Megjegyzés: Az On x Goto cimke1, ..., cimkeN utasítás a Select struktúrával ekvivalens vezérlésátadást tesz lehetővé a Goto és Gosub utasítások használatával.

4. Ciklusok

For számláló=tól To ig [Step lépésköz] Utasítások Next [számláló]

A számláló határozza meg, hogy hányszor hajtódnak végre a törzsben levő utasítások. A lépésköz opcionális, az értéke alapértelmezésben 1. A lépésköz lehet negatív is, de ekkor a "tól" értéknek nagyobbnak kell lennie az "ig" értéknél. A számlálónak, valamint a "tól" és "ig" értéknek numerikusnak kell lennie, ezen belül tetszőleges típusú lehet, de általában Integer típusú változót használunk.

Figyelni kell arra, hogy Visual Basic nem akadályozza meg, hogy megváltoztassuk a számláló értékét a ciklus belsejében!

For Each element in Group Utasítások Next [element]

A For ciklusnak ez a fajtája akkor hasznos, ha elemek egy csoportjára szeretnénk végrehajtani valamilyen műveletsort, de nem tudjuk pontosan, hogy hány elem tartozik a csoportba. Végigveszi a csoportban található elemeket egyesével, és elvégzi velük a törzsben adott utasításokat. A For Each ciklusban nem okoz fennakadást, ha a ciklusmagban változtatjuk a gyűjtemény tartalmát, kiveszünk elemeket, vagy újakat veszünk hozzá. A ciklus a gyűjteményben levő elemeken fut végig.

Do While felt Utasítások Loop

A Do...Loop ciklus a törzset nem előre meghatározott számszor hajtja végre, hanem egy feltétel kiértékelésétől függ, hogy mikor fejezi be a törzs ismételt végrehajtását. Tehát amikor a program futása során először fut le a Do utasítás, akkor a Visual Basic kiértékeli a feltételt. Ha ez hamis, akkor a végrehajtás azonnal a ciklus utáni első utasítással folytatódik. Ha a feltétel aktuális értéke True, akkor az utasításblokk lefut, majd a végrehajtás újra a Do utasításra kerül, és a feltétel újra kiértékelődik. A ciklusfeltételnek numerikus értékre kiértékelhető kifejezésnek vagy összehasonlításnak kell lennie.

Do Until felt Utasítások Loop

A While kulcsszót helyettesíthetjük az Until szóval, melynek hatására a ciklus mindaddig ismétlődik, amíg a Feltétel értéke False.

Do Utasítások Loop Until felt Do Utasítások Loop While felt

Lehet elöl- vagy hátultesztelő is. A hátultesztelő ciklus használatakor a törzs egyszer mindenképpen végrehajtódik.

While feltétel Utasítások Wend

Mint a Do...Loop ciklus, ez is addig hajtja végre a törzsben szereplő utasításokat, míg a feltétel hamissá nem válik. A Visual Basic csak azért tartalmazza ezt a ciklust, hogy kompatibilis maradjon a régebbi Basic változatokkal, melyekben a Do...Loop szerkezet nem, vagy nem ennyire rugalmasan volt használható.

5. Vezérlésátadó utasítások

A Visual Basicben két (gyakran használt) vezérlésátadó utasítás van, a Call és a GoTo (ez már csak hagyománytiszteletből maradt meg a nyelvben). Alkalmazási formájuk:

Eljárásokat hívhatunk a Call kulcsszóval, vagy egyszerűen a nevük leírásával. A paramétereket nem fontos zárójelek közé írni, csak akkor, ha a Call utasítást használjuk. A paramétereket megadhatjuk "param1=érték1 param2=érték2 ..." formában is, ekkor a paraméterek sorrendjét sem kell betartani. Függvények esetében mindig ki kell írni a zárójeleket a paraméterlista elé és után.

A nyelvben maradt néhány struktúra, ami már nem, vagy csak nagyon ritkán használatos. Ezek:

Kilépő utasítások

Az Exit utasítással léphetünk ki ciklusokból, illetve alprogramokból. Az Exit mindig közvetlenül lép ki a For...Next és Do...Loop ciklusból, valamint a Sub és Function alprogramokból.

Kilépés ciklusból: A For...Next ciklusból az Exit For, a Do...Loop ciklusból az Exit Do utasítással léphetünk ki. Ezeket az utasításokat általában valamilyen feltétel előzi meg, és csak akkor hajtódnak végre, ha a feltétel igaz, és nincsen szükség a ciklus hátralevő részének végrehajtására.

Kilépés alprogramokból: Sub eljárásból az Exit Sub, függvényből pedig az Exit Function utasítással léphetünk ki. Mint a ciklusoknál, az Exit utasítások használata általában az alprogramok esetében is feltételhez kötött.

6. Option utasítások

Az Option utasításokkal a kód "alapszabályait" állíthatjuk be, ezáltal megelőzhetjük a szintaktikai és logikai hibákat. Ezek a lehetőségek:

Option Explicit - On-ra vagy Off-ra állítható, az On az alapértelmezett. Megköveteli, hogy minden változót a használata előtt deklaráljunk (ez az alapértelmezett).

Option Explicit Off Module Module1 Sub Main () intValue = 5 intValue2 = intValue + 5 System.Console.WriteLine(intValue2) End Sub End Module

Option Compare - Binary-ra vagy Text-re állítható. Azt állítja be, hogy a sztringeket milyen metódus szerint hasonlítsa össze. Binary esetén (A < B < E < Z < a < b < e < z < Á < É < Ø < à < ê < ø), amíg text esetén ((A=a) < (À = à) < (B=b) < (E=e) < (Ê = ê) < (Z=z) < (Ø = ø)) a karakter összehasonlítást alkalmazza. )

Option Compare Text Module Module1 Sub Main () Dim strText As String = "Text" If strText = "text" Then System.Console.WriteLine("Azonos") End If End Sub End Module

Option Strict - On-ra vagy Off-ra állítható, az Off az alapértelmezett. Ha ez az opció be van kapcsolva, és egy adott típusú változónak másmilyen típusú értéket adunk, és lehetőség van bármilyen adatvesztésre, a Visual Basic ezt hibának értékeli. Ebben az esetben explicit konverziós függvényeket kell használnunk.

Option Strict On Module Module1 Sub Main () Dim dblData As Double = 3.14159 Dim intData As Integer dblData intData = CType(dblData, Integer) System.Console.WriteLine("intData - " & Str(intData) End Sub End Module

VisualBasic .NET- ben az Option Base utasítás többé nem létezik. A tömbindex kezdőértéke a 0, és többé nem használhatjuk az Option Base utasítást vagy a To kulcsszót arra, hogy beállítsuk az alsó határt.