Pętle





Pętle również należą do najważniejszych elementów języka i służą do powtarzania danego zbioru instrukcji (operacje matematyczne, warunki i wszystko co się da), pewną ilość razy. W Pascalu wyróżniamy 3 rodzaje pętli:

For
Jest to najprostsza pętla, pozwala na wykonanie danych operacji podaną ilość razy:
for i:=1 to 20 do operacja {"i" zmienna typu integer;}
lub
for i:=1 to 20 do begin
operacje;
end;
W każdym cyklu pętli wartość zmiennej i będzie się zwiększała o 1, zaczynając od wartości aż osiągnie wartość 20. Warunek zakończenia pętli jest sprawdzany po zakończeniu cyklu.
W przypadku tej pętli możliwe jest także "wsteczne odliczanie": for i:=20 downto 1 do operacja

While
W przeciwieństwie do innych pętli warunek zakończenia sprawdzany jest na początku cyklu, dlatego jest to jedyna pętla która może nie wykonać się ani razy (wszystkie inne wykonają się przynajmniej raz)
While x<>10 do begin
operacje;
end;
Ta pętla będzie się wykonywała aż x przyjmie wartość 10. Dobrze by było gdyby w operacjach znalazła się także instrukcja zmieniająca wartość zmiennej x, w przeciwnym razie pętla się nigdy nie skończy:
x:=0;
While x<>10 do begin
operacje;
x:=x+1
end;


Repeat...until
Działa podobnie jak while, tylko że warunek zakończenia jest sprawdzany po zakończeniu cyklu:
repeat
operacje;
until x=2; {pętla będzie wykonywana do momentu w którym x będzie równe 2} W tym przypadku również dobrze by było zadbać o to aby pętla się kiedyś skończyła.

Continue
umieszczenie takiej instrukcji w pętli, spowoduje przejście do następnego cyklu pętli z pominięciem wszystkich operacji znajdujących się po continue.
while x<>10 do begin
operacje1;
if x=4 then continue
operacje2;
x:=x+1
end;
pętla będzie się wykonywać dopóki "x" będzie równe 10, ale przy wartości 4, operacje2 nie zostaną wykonane (operacje1 zostaną).

Break
Umieszczenie w pętli tej instrukcji spowoduje natychmiastowe zakończenie pętli while x<>10 do begin
operacje1;
if x=4 then break
operacje2;
x:=x+1
end;
Jak wyżej tylko, że jeżeli "x" będzie równe 4, to pętla zostanie przerwana i warunek główny pętli (while x<>10) nie będzie miał znaczenia.