Pętle. Rodzaje pętli
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 zmiennej 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!
}
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.
Polecamy: Mega Sekurak Hacking Party
Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - wpiszcie go w koszyku, dzięki czemu otrzymacie 40% zniżki na bilet standard. Więcej szczegółów znajdziecie tutaj.
Książka: Wprowadzenie do bezpieczeństwa IT
Niedawno wystartował dodruk świetnej, rozchwytywanej książki pt. "Wprowadzenie do bezpieczeństwa IT, Tom I" (około 940 stron). Mamy dla Was kod: pasja (wpisz go w koszyku), dzięki któremu otrzymacie 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla naszych Widzów! Jest to pierwszy tom serii o ITsec, który wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!
Pomóż dzieciom
Polska Akcja Humanitarna od wielu lat dożywia dzieci. Prosimy, poświęć teraz dosłownie chwilę i pomóż klikając w oznaczony strzałką zielony brzuszek Pajacyka. Dziękujemy!
Komentarze
Czy macie jakieś pytania, sugestie, uwagi? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać: kontakt@pasja-informatyki.pl. Dziękujemy za poświęcony czas - to dzięki Wam serwis staje się coraz lepszy!