{
Pętle powtarzają dane bloki kodu w zależności od określonych warunków.
Najprostrzą i chyba najczęściej używaną jest pętla for.Pętla ta
powtarza dane instrukcje określoną ilość razy. Wymaga ona
zadeklarowanej zmiennej liczbowej, której wartość jest równa aktualnemu
"powtórzeniu". Wygląda ona tak:
var
x:integer;
for x:={wartość poczatkowa} to {wartość końcowa} do
begin
{instrukcje}
end;
|
Wartość x będzie się zwiększała o 1 po kożdym "powtórzeniu", aby x malał o 1 należy zamiast słowa "to" wstawić "downto":
var
x:integer;
for x:={wartość poczatkowa} downto {wartość końcowa} do
begin
{instrukcje}
end;
|
czyli przykładowe użycie tej pętli będzie wyglądało następująco:
var
x:integer;
begin
for x:=0 to 20 do //od 0 do 20 rób...
begin
caption:=inttoetr(x); //pokaż na pasku aktualne powtórzenie
sleep(20); // poczekaj 20 milisekund
end;
|
Następnym rodzajem pętli jest pętla while. Wykonuje ona dane czynności dopuki nie zostanie spełnony okreslony warunek:
while {warunek} do
begin
{instrukcje}
end;
|
czyli np.:
var
x:integer;
begin
x:=0;
while x<20 do inc(x); //zwiększaj x o 1 aż do 20
|
Ostatnią pętlą jest pętla repeat. Różni się ona od
pętli while tym, że podane w niej instrukcje zostaną wykonan co
najmniej jeden raz, jej budowa wygląda tak:
repeat
{instrukcje}
until
{warunek}
|
na przykład:
var
x:integer;
begin
x:=0
repeat
inc(x)
until
x<20;
|
Z pętlami są związane równiż dwie specyficzne
procedury: break i continue. Procedura break zatrzymuje dalsze
wykonywanie pętli, np.:
var
x:integer;
begin
for x:=0 to 20 do //od 0 do 20 rób...
begin
if x=8 then break; //jeżeli x = 8 to przerwij działanie pętli
end;
|
Natomiast procedura continue, sprawia że pętla nie kożczy aktualnego powtórzenia i przechodzi do następnego:
var
x,y:integer;
begin
for x:=0 to 20 do
begin
caption:='';
randomize;
y:=random(3); //losuj od 0-2
if y=0 then continue; //jeżeli y=0 to przejdz do następnego powtórzenia
caption:='Wylosowales '+inttostr(y);
sleep(20);
end;
|
Autor: Michał Łoński