A repeat … until ciklus
A Free Pascal végfeltételes (más szóval hátultesztelő) ciklusutasítása a Repeat .. Until. Szintaxisa:
Repeat
utasítások
Until logikai kifejezés
Ez az egy olyan vezérlési szerkezet Free Pascalban, melyben több utasítást sem szükséges Begin .. End; közé zárni, mivel a Repeat és az Until kulcsszavak egyértelműen jelzik a ciklusmagot. A ciklusmag állhat több utasításból, a szintaxis nem változik.
Végrehajtáskor a ciklusba lépve a program először végrehajtja a ciklusmagot, majd kiértékeli a ciklus feltételeként megadott logikai kifejezést. Ha az hamis, akkor ismét végrehajtja a ciklusmagot, majd újra kiértékeli a feltételt. Ezt mindaddig ismétli, míg a logikai kifejezés igaz nem lesz.
A ciklus magjából kiléphetünk a Break utasítással, míg a Continue hatására az adott iterációs lépés megszakad, és a végrehajtás a ciklusmagtól kezdődik újra.
Szintaxis:
REPEAT utasítás UNTIL logikai kifejezés;
Végtelen repeat … until ciklus
Ha a ciklusmagban nem hajtunk végre semmilyen utasítást, mely a ciklus feltételéül megadott logikai kifejezést igazzá nem teszi, vagy a kifejezés azonosan hamis, akkor a ciklus végtelenné válik. Példa végtelen ciklusra:
Repeat
ReadLn(X)
Until X<>X
Megjegyzés a repeat … until ciklushoz
Mivel a végrehajtás a ciklusmag lefutásával kezdődik, a Repeat .. Until ciklus nem lehet üres, csak abban az esetben, ha a ciklusmag minden utasítása üres utasítás. A következő példában a program egy billentyű leütésére várakozik. (a Crt Unit meghívása szükséges) Itt valójában a tényleges műveletet a Keypressed függvény végzi, ami a vezérlőfeltételben van. példa:
Repeat Until Keypressed