Az előző leckében a feltétel vizsgálatról volt szó. Ebben a leckében a ciklusokról fogunk beszélni.
Az eddigi leckék során már volt alkalmunk megismerni egy ciklust, mégpedig a Do-Loop ciklust ami egy végtelen ciklus és gyakorlatilag a fő ciklusnak tekinthető az AGK-ben, mivel ez gondoskodik arról hogy minden rendszeresen és ismétlődően fusson a programunkban. Ám lehetőségünk van használni más ciklusokat is.
For-Next ciklus
A For-Next ciklus segítségével lehetőségünk van szabályozni hogy a programunkban valami hányszor fusson le. Például ha azt szeretnénk hogy a képernyőre 5 alkalommal írjuk ki hogy “Hello” akkor a következő módon tehetjük azt meg.
do For i = 1 to 5 Print("Hello") Next i Sync() loop
Ahogy láthatjuk a ciklus a Do-Loop ciklusban foglal helyet. Ebben a bizonyos esetben a Print() utasítás miatt van erre szükség mivel szeretnénk hogy a kiírt szöveg a képernyőn maradjon ám ez nem követelmény, ott használhatjuk a ciklusokat ahol csak szeretnénk.
A For-Next ciklust a For utasítással kezdjük, ez jelzi a programunknak hogy ez a bizonyos ciklust itt kezdődik. Ezt követi pár paraméter, az első egy integer változó aminek adunk egy alap értéket, ebben az esetben a változó neve ‘i’ az értéke pedig ‘1’ (i = 1). A ciklus mindég egyel növelni fogja ennek a változónak az értékét ahányszor csak lefut. A második paraméterben pedig azt tudjuk megadni hogy meddig fusson a ciklus, az-az mennyi legyen az előző paraméterben megadott változó maximum értéke. Ebben az esetben azt adtuk meg hogy ‘5’ (to 5). Szóval a ciklusunk miután lefutott, veszi az i változót aminek az alapértéke 1 és növeli az értéket egyel. Ezt addig ismétli még a változó értéke meg nem haladja a második paraméterben meghatározott értéket az-az ebben az esetben 5-öt. Amikor az i értéke meghaladja a megadott értéket a ciklus megáll és nem fut le többször.
A ciklust a Next utasítással zárjuk ezzel jelezve a programunknak hogy a ciklusnak itt vége és a Next utasítás után, annak a változónak a nevét kell írnunk amit paraméternek megadtunk ezzel gondoskodva róla hogy növelje az értékét az adott változónak a ciklus végén.
Természetesen a köztes mezőbe, a For és a Next közé kerül minden parancs amit szeretnénk hogy lefusson a ciklusban, ez esetben a Print(“Hello”) parancs került oda hogy kiírjuk a képernyőre hogy “Hello” ahányszor csak lefut a ciklus.
A ciklusnak meglehet adni egy harmadik opcionális paramétert is, mégpedig azt hogy menyivel növekedjen az első paraméterben megadott változó értéke minden alkalommal amikor a ciklus lefut.
For i = 1 to 5 step 2 Print("Hello") Next i
Ebben az esetben az első paraméterben megadott változó értéke kettővel fog növekedni (step 2), minden ciklus végén ami azt eredményezi hogy ezúttal a ciklusunk csak háromszor fog lefutni mivel hamarabb éri el illetve lépi túl a második paraméterben meghatározott értéket..
American uk viagra ginseng is used to cure a person. Miliband wants that to have such levitra 40mg kind of medication. Seafood acquire their vitamin D from zooplankton and, likely, phytoplankton. http://raindogscine.com/?attachment_id=31 purchase generic levitra The semen load depends on the time of expending this solution It is encouraged to devour it with a brand cialis online glass of water 100 mg of Kamagra Effervescent tablets is perfect to be taken either unfilled stomach to after a light supper advised to take Zenerx.
Akár azt is megtehetjük hogy azt az utasítást adjuk a ciklusban hogy az adott változó értéke csökkenjen és ne növekedjen.
For i = 5 to 1 step -1 Print("Hello") Next i
Itt azt láthatjuk hogy alap értéknek 5-öt adtam meg, maximum értéknek pedig egyet. Ez önmagában hibás mivel a ciklus alapértelmezettként növekszik és nem csökken, az ok ami miatt mégis működik a harmadik érték mivel annak az értéke ezúttal egy negatív szám (step -1) ami azt eredményezni hogy minden ciklus után a váltózó értéke csökkenni fog egyel és nem növekedni. A végeredmény ugyan az, amikor a váltózónk értéke meghaladja (ami ez esetben azt jelenti hogy kevesebb lesz mint 1) a második paraméterben meghatározott értéket, a ciklus leáll és a programunk kilép a ciklusból.
Ám nem csak a For-Next ciklus áll a rendelkezésünkre.
While-EndWhile ciklus
A While-EndWhile ciklust használva azt szabályozhatjuk hogy egy adott utasítás, mikor illetve meddig fusson. Ennek a ciklusnak a működése rendkívül hasonlít az IF feltétel vizsgálathoz azzal a különbséggel hogy még az IF feltétel vizsgálata során egy utasítás csak egyszer fut le ha a feltétel teljesül, addig a While ciklus mind addig ismétlődően fut még a feltétel teljesül. Éppen ezért óvatosán kell bánni vele mert könnyen kialakíthatunk egy végtelen ciklust a használatával amiből a programunk soha nem lép ki és ott elakad.
a as integer = 1 do while a < 10 a = a + 1 Print("Hello") Sync() EndWhile Sync() loop
Ebben az esetben létrehoztam egy változót aminek az alap értéke ‘1’, majd azt tesztelem a While ciklusban hogy az ‘a’ értéke kisebb-e mint 10. Ameddig a feltétel igaz, a ciklusban található utasítás folyamatosan fut és csak is az. Amint az ‘a’ értéke eléri a 10-et, a ciklus többet nem fut le és a programunk kilép a ciklusból. A ciklust a While utasítással kezdjük és az EndWhile utasítással zárjuk le. Minden ami a kettő közé kerül folyamatosan futni fog addig még a feltétel igaz. Ahogy láthatjuk a ciklusban én az ‘a’ értéket növelem egyel minden alkalommal amikor lefut a ciklus ezzel szabályozva meddig fusson a ciklus, más esetben a ciklus örökké futna, majd kiíratom a képernyőre hogy ‘Hello’ és frissítem a képernyőt a Sync() utasítással. Ebben az esetben azért kell a képernyőt frissíteni a cikluson belül, mert a ciklusból a programunk nem lép ki mind addig még a feltétel igaz, csak és kizárólag az fut ami a cikluson belül van. Ahhoz hogy a képernyőn lássuk kiírva hogy “Hello”, frissíteni kell a képernyőt a cikluson belül is.
A következő leckében a funkciókról lesz szó.