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
repeat
wykonuje się co najmniej 1 raz, natomiast pętlawhile
może się nie wykonać wcale - pętla
repeat
wykonywana jest tak długo, jak występujący w niej warunek logiczny jest fałszywy, natomiast pętlawhile
wykonuje się tak długo, jak występujący w niej warunek jest prawdziwy - pętla
repeat
do 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.