Kurs programowania w Javie
Część III: zabieramy się za pętle!
Darek 23 marca 2006, 22:38
W trzeciej części poradnika zajmiemy się instrukcjami, które często nazywane są pętlami. W Javie znajdują się trzy rodzaje pętli (for, while, do...while) oraz dwie instrukcje warunkowe (if, switch). W tej części opiszemy 3 z nich, te najczęściej używane, czyli for, while i if.
For
Pętla for to prawdopodobnie najczęściej używana instrukcja w Javie. Tak wygląda jej struktura:
instrukcje
}
Po inicjalizacji kodu licznik zostaje zadeklarowany. Jeśli dany warunek (wyrażenie logiczne) jest spełniony, zadania wewnątrz pętli zostają wykonane, a licznik jest aktualizowany – tak wygląda to w teorii. Oto przykład pętli, której zadaniem będzie wyświetlenie liczb od 0 do 10.

Naszym licznikiem jest zmienna ''i'' o typie integer (int), można ją oczywiście zadeklarować przed pętlą. Warunek jest spełniony, gdy „i” jest mniejsze lub równe 10. Po każdym przejściu przez pętlę licznik zwiększany jest o 1 (za operację tę odpowiada wyrażenie i++). Jako że kod wewnątrz pętli zajmuje tylko jedną linię, użycie nawiasów { } nie jest konieczne, aczkolwiek radziłbym nigdy o nich nie zapominać, chociażby dla przejrzystości kodu.
While
Pętla while (z ang. dopóki) jest tak jak for pętlą; jej struktura jest jednak mniej skomplikowana:
instrukcje
}
Pętla będzie się wykonywać tak długo, jak długo spełniony będzie warunek (wyrażenie logiczne). Przykładowy program sumujący liczby z przedziału 1 – 100 znajduje się poniżej.

Wyrażenie logiczne pętli while jest prawdziwe, linia suma +=licznik (to samo co „suma = suma + licznik”) zostaje wykonana, suma ma wartość 1. Druga linia kodu zwiększa licznik o jeden, jego wartość wynosi teraz 2. Warunek jest spełniony (2 jest mniejsze od 100), więc suma = 1 + 2, licznik jest znów zwiększony o 1 i tak w kółko, aż do momentu kiedy warunek nie zostanie spełniony, czyli kiedy licznik będzie równy 101.
Przy pisaniu kodu należy uważać, aby nie stworzyć pętli, która wywoływać się będzie w nieskończonoc. Dziać się to będzie, gdy wyrażenie logiczne będzie zawsze prawdziwe.
If/if-else
Instrukcji if używamy, kiedy chcemy wykonać daną operację pod pewnym warunkiem. Składnia:
instrukcje
}
instrukcje1
} else {
instrukcje2
}
W pierwszym wypadku, jeżeli warunek jest spełniony, program wykonuje daną czynność; jeżeli nie jest on spełniony program nic nie robi. W drugim przykładzie, jeżeli warunek nie jest spełniony, program wykonuje polecenia znajdujące się w nawiasach po instrukcji else (instrukcje2).
Java pozwala na stworzenie wielowarunkowej pętli if-else. Oto składnia
instrukcje1
}else if(){
instrukcje2
}else if(){
instrukcje3
}else if(){
instrukcjen
}else{
instrukcje
}
Zagnieżdżanie pętli i instrukcja break
Język programowania, którym się zajmujemy, pozwala na zagnieżdżenia różnego rodzaju instrukcji. Instrukcję if możemy na przykład zagnieździć w pętli for. Komu jest to potrzebne? Pomyślmy, że mamy do napisania program, który musi znaleźć dzielniki danej liczby. Wydaje się trudne? Wcale takie nie jest…

Prosimy użytkownika o wpisanie dowolnej dodatniej liczby, limit stanowi liczba podzielona przez dwa (dzielnikiem nie może być przecież liczba większa od połowy dzielonej liczby). Pętla for zaczyna się od licznika o wartości 2 i wykonuje się dopóty, dopóki spełniony jest warunek. Za każdym razem, gdy reszta z dzielenia liczby przez dzielnik równa się 0, program wyświetla obecny licznik, który jest prawidłowym dzielnikiem.
Używając zagnieżdżonych instrukcji if, przydatnym poleceniem może okazać się „break”, który fachowo nazywany jest instrukcją sterującą.
if(i == 5) {
break;
}
i++
}
Pętla while zatrzyma się, gdy licznik i osiągnie wartość 5. Jest to jednak dość banalne zastosowywanie funkcji break.
Dla przykładu przygotowałem również program, którego zadaniem będzie stwierdzenie czy dana liczba jest liczbą pierwszą, czy też nie.

Jeżeli macie jakieś sugestie co do materiałów, które powinny pojawić się w następnych częściach poradnika, piszcie na naszym forum!


