A hurok közös elem az összes programozási nyelvben. Delphinek három irányító struktúrák amely többször végrehajtja a kódblokkokat: az, ismételje meg... amíg és amíg... tennie.
A FOR hurok
Tegyük fel, hogy egy műveletet rögzített számú alkalommal meg kell ismételnünk.
// 1,2,3,4,5 üzenet dobozok megjelenítése
var j: egész szám;
kezdődik
mert j: = 1 nak nek 5 csinál
kezdődik
ShowMessage ('Box:' + IntToStr (j));
vég;
vég;
A (j) vezérlőváltozó értéke, amely valóban csak számláló, határozza meg, hogy hányszor fut az utasítás utasítás. A számláló beállítása kulcsszava. Az előző példában a számláló kiindulási értékét 1-re állítják. A végérték 5-re van állítva.
Amikor a for utasítás utasítás fut, a számláló változót a kezdő értékre állítja. Delphi mint azt ellenőrzi, hogy a számláló értéke alacsonyabb-e a végértéknél. Ha az érték nagyobb, akkor semmit nem teszünk (a program végrehajtása a cikluskódot közvetlenül követő kódsorra ugrik). Ha a kiindulási érték kisebb, mint a befejező érték, akkor végrehajtódik a hurok törzse (itt: megjelenik az üzenet mező). Végül Delphi hozzáadja az 1-et a számlálóhoz, és újraindítja a folyamatot.
Időnként vissza kell számolni. Az le A kulcsszó meghatározza, hogy a számláló értékét minden egyes alkalommal csökkenteni kell a hurok végrehajtásakor (egynél nagyobb növekedést / csökkentést nem lehet megadni). Példa egy vissza forgatható hurokra.
var j: egész szám;
kezdődik
mert j: = 5 le 1 csinál
kezdődik
ShowMessage ('T mínusz' + IntToStr (j) + 'másodperc');
vég;
ShowMessage ('A sorozat végrehajtva!');
vég;
Megjegyzés: Fontos, hogy soha ne változtassa meg a vezérlőváltozó értékét a hurok közepén. Ellenkező esetben hibákat okoz.
Beágyazott FOR hurkok
Hurok írása másik körben hurok számára (fészkelő hurkok) nagyon hasznos, ha adatokat szeretne kitölteni / megjeleníteni táblában vagy rácsban.
var k, j: egész szám;
kezdődik
// ezt a kettős hurkot 4x4 = 16 alkalommal hajtják végre
mert k: = 1 nak nek 4 csinál
mert j: = 4 le 1 csinál
ShowMessage ('Box:' + IntToStr (k) + ',' + IntToStr (j));
vég;
A következő hurkok beágyazási szabálya egyszerű: a belső hurkot (j számlálót) ki kell tölteni, mielőtt a külső hurok következő kijelentése megtörténik (k számláló). Három- vagy négyszeresen beágyazott hurkokat helyezhetünk el, vagy még többet.
Megjegyzés: Általában a kezdő és a vég kulcsszavak nem szigorúan szükségesek, amint láthatja. Ha az elejét és a végét nem használják, akkor a ciklus törzsének tekintik a közvetlenül a for utasítás utáni utasítást.
A FOR-IN hurok
Ha van Delphi 2005 vagy bármilyen újabb verziója, akkor az "új" elem-gyűjtemény-stílusban iterációt használhat konténerek felett. A következő példa szemlélteti iteráció string kifejezések felett: minden karakterláncban ellenőrizze, hogy a karakter „a” vagy „e” vagy „i”.
const
s = 'A Delphi programozásról';
var
c: szén;
kezdődik
mert c ban ben s csinál
kezdődik
ha c ban ben ['A e i'] azután
kezdődik
// csinálj valamit
vég;
vég;
vég;
A WHILE és REPEAT hurkok
Időnként nem tudjuk pontosan, hányszor kell egy ciklust ciklusba forgatni. Mi lenne, ha meg akarja ismételni a műtétet, amíg el nem érjük egy meghatározott célt?
A while-do hurok és az ismétlődő hurok közötti legfontosabb különbség az, hogy a ismételje meg a nyilatkozatot mindig legalább egyszer végrehajtják.
Az általános minta, amikor egy ismétlődő (és míg) típusú hurkot írunk a Delphi-ban, a következő:
ismétlés
kezdődik
kimutatások;
vég;
amíg feltétel = igaz
míg feltétel = igaz csinál
kezdődik
kimutatások;
vég;
Íme a kód, amely az 5 egymást követő üzenetdobozt megmutatja az ismétlés használatáig:
var
j: egész szám;
kezdődik
J: = 0;
ismétlés
kezdődik
j: = j + 1;
ShowMessage ('Box:' + IntToStr (j));
vég;
amíg j> 5;
vég;
Mint láthatja, az ismétlődő nyilatkozat kiértékeli a hurok végén levő feltételt (ezért az ismétlés hurkot legalább egyszer biztosan végrehajtják).
A while állítás ezzel szemben a hurok elején egy feltételt értékel. Mivel a tesztet a tetején végzik, általában a hurok feldolgozása előtt meg kell győződnünk arról, hogy a feltétel értelme van-e, ha ez nem igaz, fordítóprogram dönthet úgy, hogy eltávolítja a hurkot a kódból.
var j: egész szám;
kezdődik
J: = 0;
míg j <5 csinál
kezdődik
J: = j + 1;
ShowMessage ('Box:' + IntToStr (j));
vég;
vég;
Szünet és folytassa
A Break és a Continue eljárások felhasználhatók az ismétlődő állítások folyamatának ellenőrzésére: The Break eljárás miatt a vezérlés folyamata kilép egy, míg, vagy ismétlődő utasításból, és folytatódik a következőnél nyilatkozat követve a hurkot nyilatkozat. A folytatás lehetővé teszi a vezérlés folyamatát az ismétlődő művelet következő ismétléséhez.