Dzisiejszy wpis będzie dotykać kolejnego, bardzo ważnego elementu programowania, dziś porozmawiamy sobie o pętlach w Javie! Z pętlami w Javie mamy do czynienia niemalże na każdym kroku, warto je dobrze poznać i zrozumieć 😊

01. Pętla while

Pierwszą pętlą jaką opiszę jest pętla while. Ogólna postać pętli wygląda następująco:

while(warunek) {
    instrukcje
}

Zasada działania pętli while jest bardzo prosta. Dopóki podany warunek jest spełniony (ma wartość true), wszystko co znajduje się w ciele pętli zostanie wykonane, po wykonaniu wszystkich instrukcji w pętli, powtarzamy cały proces -> sprawdzamy czy warunek jest spełniony, jeśli tak, wykonujemy instrukcje w pętli! I tak w koło Macieju 😉 Pętla będzie się kręcić dopóki wartość warunku jest true, jeśli warunek nie zostanie spełniony (będzie mieć wartość false), instrukcje znajdujące się wewnątrz pętli nie zostaną wykonane oraz cała pętla zakończy swój przebieg. Czas na przykład 😊

int counter = 0;
while (counter < 20) {
    System.out.println("Licznik wynosi "+counter);
    counter++;
}

W pierwszej linijce deklarujemy zmienną counter, którą inicjalizujemy wartością 0. Następnie przechodzimy do pętli w której sprawdzamy czy counter jest mniejszy od 20, jeśli warunek zostanie spełniony wchodzimy do pętli i wykonujemy instrukcje które się w niej znajdują. Zwróć uwagę że jedną z instrukcji jest zwiększenie zmiennej counter (linia 4).

Jest to bardzo ważna rzecz! Gdyby jej zabrakło zmienna counter miała by zawsze wartość 0, warunek byłby zawsze spełniony, a my doprowadzilibyśmy do sytuacji w której mamy nieskończoną pętlę.

/* Pamiętam gdy podczas jednego z pierwszych miesięcy studiowania na kolokwium z podstaw programowania zapomniałem podbić licznika, skutkiem czego program wypisywał bez końca 2 😉 zgadnijcie co dostałem z kolosa 😛 */

02. Pętla do ... while

Pętla do while jest odmianą pętli while, jej odmienność polega na tym że instrukcje w niej zawarte wykonają się co najmniej raz, nawet gdy warunek nie zostanie spełniony. Ogólny postać wygląda tak:

do {
    instrukcje
} while (warunek);

Przykład:

int counter = 0;
do {
    System.out.println("Licznik wynosi "+counter);
    counter ++;
} while (counter < 20);

Pętla do while sprawdza się w momencie kiedy chcemy mieć pewność że instrukcje w niej zawarte wykonają się co najmniej raz, podczas gdy warunek pętli while może nigdy nie zostać spełniony.

03. Pętla for

Pętla for ma odmienną postać od pozostałych. Ogólna postać wygląda tak:

for(deklaracja licznika; warunek; modyfikacja licznika) {
    instrukcje
}

W deklaracji pętli mamy: deklarację zmiennej służącej nam jako nasz licznik, warunek który musi zostać spełniony aby wykonały się instrukcje w ciele pętli, oraz instrukcje zmieniająca stan naszego licznika. Podstawowy przykład wygląda tak:

for (int i = 0; i < 10 ; i++) {
    System.out.println("Licznik wynosi "+i);
}

Pamiętacie poprzedni wpis o tablicach? Tak się składa że pętla for idealnie nadaje się do iterowania po elementach tablicy:

String[] array = {"Arek","Tomek", "Michal", "Karol"};
for (int i = 0; i < array.length; i++) {
    System.out.println(array[i]);

}

Od Javy 5 zostało wprowadzone pewne usprawnienie dla pętli for które pozwala nam iterować po kolekcjach (o kolekcjach w Javie będzie osobny wpis 😊) oraz tablicach. Zamiast odnosić się do poszczególnych elementów możemy zrobić tak:

String[] array = {"Arek","Tomek", "Michal", "Karol"};
for (String element: array) {
    System.out.println(element);
}

Dużo prościej prawda? W ten sposób pętla będzie szła od pierwszego do ostatniego elementu naszej tablicy.

04. Elementy specjalne: break oraz continue

W pętlach możemy zastosować dwa elementy specjalne, break oraz continue (break możemy użyć też w instrukcji switch)

Instrukcja break powoduje natychmiastowe przerwanie pętli, natomiast instrukcja continue powoduje natychmiastowe przejście do kolejnej iteracji pętli.