Pętla repeat … until
Pętla tworzona z wykorzystaniem instrukcji repeat … until wykonywana jest co najmniej raz i kończy się wykonywać, jeśli jest spełniony występujący w niej warunek logiczny.
Pętla tego rodzaju składa się ze słowa kluczowego repeat, po którym występuje sekwencja instrukcji zakończonych słowem kluczowym until i warunkiem logicznym.
Ogólna postać pętli repeat przedstawiona jest poniżej:
repeat
{instrukcja_1};
{instrukcja_2};
{...}
until wyr_log;
Należy zwrócić uwagę, że pętla repeat ... until różni się od pętli while pod trzema względami:
- pętla
repeatwykonuje się co najmniej 1 raz, natomiast pętlawhilemoże się nie wykonać wcale - pętla
repeatwykonywana jest tak długo, jak występujący w niej warunek logiczny jest fałszywy, natomiast pętlawhilewykonuje się tak długo, jak występujący w niej warunek jest prawdziwy - pętla
repeatdo wykonania wielu instrukcji nie wymaga stosowania instrukcji grupującej
Pętli repeat ... until odpowiada następujący schemat blokowy:
uses Crt;
begin
repeat
until KeyPressed;
end.
Powyższy przykład pokazuje w jaki sposób można zbudować program czekający na naciśnięcie dowolnego klawisza. Wykorzystuje on funkcję KeyPressed z modulu Crt, trzeba więc poinformować komputer że będziemy korzystali z Crt;
Przykład
USES CRT;
VAR
haslo:longint;
BEGIN
REPEAT
clrscr;
writeln(’Podaj hasło!’);
read(haslo);
UNTIL haslo=123;
writeln(’BRAWO! Odgadłeś hasło!’);
readln;
END.














