Ciklusokra a mindennapi életben példa az az unalmas dolog,
hogy ismétlődésszerűen minden nap el kell menni az iskolába,
vagy esetleg a munkába munkába.
Mi most három típusát vesszük itt a ciklusoknak
- Turbo Pascal ezt a hármat ismeri:
Elöl tesztelő ciklus
Ezt while-ciklusnak is szokták nevezni,
mert benne van az algoritmus kulcsszói között ez a kifejezés is. Így néz ki:
while feltetel
do
begin
esemeny1;
esemeny2;
esemenyn;
end; |
A ciklus addig ismétlődik, amíg a feltétel
teljesül. Mikor a feltétel már nem teljesül a ciklus megszakad
és folytatódik a többi utasítással a program.
Akkor érdemes használni, mikor a feltételt
hamarabb le szeretnéd ellenőrizni, mint ahogy az utasítást
végrehajtani.
Érdekes jellemzője, hogy ha már az elején nem
teljesül a feltétel, akkor egyszer sem hajtódnak végre az
utasítások.
while feltetel
do esemeny;
{Mivel itt csak egy végrehajtandó
utasítás van, nem kell a begin-end szópáros.} |
Hátul tesztelő ciklus
Ennek is van másik neve: repeat-until-ciklus. Szerepe
pont az ellenkezője az előzőnek: addig ismétlődik, amíg a
feltétel nem teljesül. Amikor a feltétel teljesült, akkor nem
ismétlődik tovább, hanem továbblép. Az algoritmus a következő:
repeat esemeny1;
esemeny2;
esemenyn;
until feltetel; |
Első ránézésre az egyik fölösleges. Sokszor
másodikra is. A legtöbb amatőr a hátultesztelő ciklust szereti,
mert kevesebb kulcsszót kell használni, ha több utasítást kell
ismételni.
Ennek a cikusnak az a jellemzője, hogy legalább
egyszer mindenféleképpen végrehajtódnak az utasítások. Elég
sokszor lesz lehetőség erre.
Számláló ciklus
Ennek az angolosított neve: for-ciklus. A
nevéből rá is lehet jönni, hogy valamit számol. Azt számolja,
hogy hányadszor ismétlődött meg a ciklus. Ha azt írod be, hogy 14-szer ismételje az adott
utasításokat, akkor 14-szer lefutnak, és közben számolja, hogy
hányadik alkalommal futott le.
Erre két szintaxis létezik. Az egyik esetben
mindig eggyel nő az érték, a második esetben mindig csökken.
Amikor nő az érték akkor a "to" kifejezést,
amikor csökken, akkor a "downto"-t kell használni .
Példa az elsőre:
for valtozo:=kisebbik
to nagyobbik
do
begin
muvelet1;
muvelet2;
utolso_muvelet;
end; |
Példa a másodikra:
for valtozo:=nagyobbik
downto kisebbik
do
begin
muvelet1;
muvelet2;
utolso_muvelet;
end; |
Tanács: a "valtozo", a "nagyobbik" és a
"kisebbik" értékét csak akkor változtasd a ciklus folyamán, ha
biztosra tudod, hogy mit kérsz a programtól, mert nagyon könnyen
előfordulhat, hogy végtelenciklust hozol létre, azaz
lefagyasztod.
Ha már sikerült lefagyasztani a programot, akkor
használd a Ctrl+Break billentyűkombinációt!
|