Pętle. Rodzaje pętli

Artykuł  | Mirosław Zelent

Pętle (ang. loop) to konstrukcje językowe służące do zdefiniowania szeregu instrukcji, które będą powtarzane wielokrotnie. Poznajmy trzy najbardziej podstawowe rodzaje pętli: “for”, “while” oraz “do .. while”.

Pętla for

W przypadku tej pętli z góry powinniśmy wiedzieć, ile razy instrukcje mają się wykonać. Aby zdefiniować w JS pętlę for wykonującą się np. 10 razy zapiszemy:

for (i = 1; i <= 10; i++)
{
// instrukcje, które będą się powtarzać }

Zmienna i to liczba nazywana zmienną sterująca pętlą (albo iteratorem pętli). W powyższym przykładzie w pierwszym wywołaniu pętli przypisujemy jej wartość startową i=1. W każdym przebiegu pętli inkrementujemy jej wartość (zapis i++), czyli zwiększamy o dokładnie jeden.

Warunek (i<=10) określa koniec iterowania (powtarzania) instrukcji. Aby najlepiej to zrozumieć, zapamiętajmy prostą regułę: pętla wykonuje się, dopóki warunek w środku zwraca wartość true (jest spełniony). Jeśli choć raz ten warunek się nie spełni, pętla zostaje zerwana (zakończona).

Pętla for może także zliczać w dół:

for (i = 10; i >= 0; i--)
{
// instrukcje, które będą się powtarzać }

Wówczas dokonujemy w każdym kroku zmniejszenia wartości iteratora o jeden – dekrementujemy jego wartość. Zmienił się też sprawdzany warunek, tak aby był prawdziwy tak długo, jak wartość iteratora jest większa lub równa jeden.

Oczywiście możemy także dodawać bądź odejmować w każdym wywołaniu pętli dowolną wartość całkowitą, zamiast inkrementować lub dekrementować (czyli zmienić wartość o dokładnie jeden):

for (i = 0; i <= 10; i=i+2)
{
alert(i);
}

Pętla while, do..while

Tym razem pętle sterowane są warunkiem, a zatem instrukcje powtarzane są wielokrotnie dopóki warunek w nawiasie jest spełniony (prawdziwy). W przeciwieństwie do pętli for nie musimy od razu definiować po ilu iteracjach pętla zakończy działanie. Różnica między pętlą while i do..while polega na tym, iż w przypadku pętli while warunek sprawdzany jest na początku, zaś w do..while na końcu bloku instrukcji. Stąd linie kodu zawarte w pętli do..while wykonają się zawsze przynajmniej jeden raz:

Oto składnia pętli while ukazana na przykładzie odgadywania liczby (“strzelamy” w skrypcie, jaka to wartość może znajdować się w zmiennej “liczba”):

while (strzal != liczba)
{
// instrukcje realizujące dalsze odgadywanie
// liczby, gdy nie trafiono i liczby nie są równe! }

Dopóki (while) liczba, którą wpisaliśmy do zmiennej “strzal” (np. pobierając ja z pola edycyjnego) jest różna od liczby w zmienne “liczba” to powtarzamy instrukcje odpowiedzialne za odgadywanie. Taka sama pętla do..while ma następującą składnię:

do
{
// instrukcje realizujące dalsze odgadywanie
// liczby, gdy nie trafiono i liczby nie są równe! } while (strzal != liczba);

Na koniec zapamiętajmy jeszcze następującą definicję – występuje na wielu egzaminach oraz w literaturze:

Instrukcja iteracyjna
jest to każda pętla (while, do..while, for) czyli instrukcja powtarzania pewnego zestawu poleceń. Nazwa wzięła się od łacińskiego słowa iteratio, itero ("powtarzanie" w wolnym tłumaczeniu). Iteracja oznacza także pojedyncze wykonanie pętli.

Komentarze

Czy macie jakieś uwagi, pytania, sugestie? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać w komentarzach. Dziękujemy Wam za poświęcony czas!