Znowu widzisz zmienną Pom, która siuży nam do zamiany zmiennych, o ile A jest mniejsze. Natomiast dlaczego tak dziwnie wypisujemy wynik: część na początku, przed obliczeniami, a część po? Chcemy, żeby przy wypisywaniu wyniku pojawiły się też dane, a program operuje na wprowadzonych liczbach i zmienia ich wartość, dlatego mielibyśmy problem. Trzeba by zapamiętać wpisane dane w dodatkowych dwóch zmiennych pomocniczych, aby potem móc je wypisać. No właśnie, a po co, skoro można wypisać je od razu i nie pamiętać?
W programie celowo (w celu skupienia się na zapisie samego algorytmu) nie sprawdzany na razie, czy wartości A i B są poprawne. Spróbuj teraz dopisać takie warunki.
Tak będzie, jeżeli zagwarantujemy, że warunek wyjścia z pętli nigdy nie będzie spełniony. Najprostsze postaci są następujące:
while True do
{ blok instrukcji } oraz: repeat
{ blok instrukcji } until False;
Ponieważ prawda nigdy nie będzie fałszem i na odwrót, mamy gwarancję, że pętla nigdy się nie skończy. Pytanie: po co nam taka pętla bez końca? Jest to dość często stosowana przez programistów metoda, szczególnie jeżeli wewnątrz pętli wiele się dzieje. Często w ten sposób bywa zaprogramowana główna pętla programu. Pętla jest nieskończona, ale gdy ktoś chce opuścić program, wywołujemy instrukcję Break, albo w ogóle zatrzymujemy pracę programu poleceniem Halt. Taka główna pętla może mieć postać:
repeat
{ Czytaj polecenie użytkownika } if { użytkownik chce skończyć pracę } then Halt else
{ wykonaj polecenia użytkownika } until false
Nie jest to metoda przeze mnie polecana (przecież można zapisać to inaczej, sprawdzając w warunku pętli, czy użytkownik chce zakończyć pracę), ale spotkasz się z nią na pewno, więc powinieneś ją znać.
Zwróć uwagę, jak różni się warunek w przypadku obu pętli. While zakończy działanie, gdy warunek będzie fałszywy, a repeat — wprost przeciwnie. Często popełnianym błędem jest pomieszanie pętli i warunku (wtedy warunek staje się dokładnie odwrotny i pętla nie działa tak, jak byśmy tego oczekiwali).
Wszystkie programy, które pisaliśmy do tej pory, jednokrotnie pobierały dane, liczyły i wyświetlały wynik. Tymczasem być może chcielibyśmy policzyć coś wielokrotnie, dla różnych danych. Można więc wzbogacić nasze programy tak, by działały w pętli. Wyjście