Wstęp do programowania wykład 4 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula
Instrukcje pętli Pętle służą do iteracyjnego wykonywania pewnych kroków Zazwyczaj mamy dostępne dwa rodzaje pętli: pętle wykonujące się określoną liczbę razy pętle wykonujące się do momentu spełnienia pewnego warunku
Pętle wykonujące się określoną liczbę razy Musimy z góry znać liczbę powtórzeń pętli W pętli funkcjonuje pewna zmienna, zwana licznikiem pętli (iteratorem), pamiętająca ile razy pętla została wykonana
Pascal: for licznik_petli := wartość_początkowa to wartość_końcowa do for licznik_petli := wartość_początkowa downto wartość_końcowa do licznik pętli należy wcześniej zadeklarować (zmienna typu porządkowego, np. integer) przy pętlach do tyłu pierwszą podajemy wartość większą jeśli zawartość pętli to kilka instrukcji, to grupujemy je za pomocą begin... end
Ada: for licznik_petli in wartość_początkowa.. wartość_końcowa loop end loop; for licznik_petli in reverse wartość_początkowa.. wartość_końcowa loop end loop; licznika pętli nie musimy deklarować przy pętlach do tyłu pierwszą podajemy wartość mniejszą zawartość pętli jest już zgrupowana (zamyka ją end loop)
C/C++: for (instrukcja_incjalizująca; warunek; instrukcja_kroku) licznik pętli należy wcześniej zadeklarować (zazwyczaj liczba całkowita, ale niekoniecznie) zawartość pętli jest wykonywana tylko gdy warunek jest spełniony pętle do tyłu uzyskujemy przez odpowiedni dobór instrukcji inicjującej, warunku i kroku instrukcji inicjalizujących może być kilka (wtedy są oddzielone przecinkami), podobnie jest w przypadku instrukcji kroku jeśli zawartość pętli to kilka instrukcji, to grupujemy je za pomocą nawiasów klamrowych
Przykładowe programy: suma10.c pętla w przód backward_loop.c pętla w tył rozne_petle.c możliwości instrukcji pętli for w C silnia.c obliczenie n!
Pętle których wykonanie zależy od warunku Pętla wykonuje się: dopóki zachodzi pewien warunek lub do momentu zajścia pewnego warunku
W pętlach wykonujących się dopóki zachodzi pewien warunek: warunek sprawdzamy PRZED pierwszym wykonaniem instrukcji wewnątrz pętli, a więc pętla może nie być wykonana ani razu W pętlach wykonujących się do momentu zajścia pewnego warunku warunek sprawdzamy PO pierwszym wykonaniu instrukcji wewnątrz pętli, a więc pętla będzie wykonana przynajmniej raz
Pascal: while warunek do podczas gdy zachodzi warunek rób... repeat until warunek; powtarzaj... do czasu zajścia warunku jeśli zawartość pętli while to kilka instrukcji, to grupujemy je za pomocą begin... end
Ada: while warunek loop end loop; podczas gdy zachodzi warunek rób... loop exit when warunek; end loop; powtarzaj... ; wyjdź gdy zachodzi warunek
C/C++: while (warunek) podczas gdy zachodzi warunek rób... do while (warunek); rób... podczas gdy zachodzi warunek jeśli zawartość pętli to kilka instrukcji, to należy je zgrupować za pomocą nawiasów klamrowych
Przykładowe programy: suma_dopoki.c pętla z warunkiem sprawdzanym na końcu koty.c pętla z warunkiem sprawdzanym przed wejściem do pętli
Pętle nieskończone W każdym z języków można napisać pętlę nieskończoną Pascal: repeat... until false; while true do...
Ada: loop... end loop; while true loop... end loop; C/C++ for (;;)... while (1)... do... while (1);
Wyjście z pętli Czasami z pętli możemy wyskoczyć : Ada: exit; exit when warunek; C/C++: break; przerywa wykonanie pętli w której jest bezpośrednio umieszczone continue; przerywa dany obieg pętli, przechodząc do wykonywania następnego obiegu
Przykładowe programy z gwiazdki.c pętla nieskończona wyjscia_z_petli.c arytm.c nwd.c minmax.c porzadkowanie.c pętlami oczywiście wszystkie te konstrukcje można zrealizować również w innych językach