Jedną z instrukcji iteracyjnych w języku Java, jest pętla for. Instrukcje iteracyjne pozwalają powtarzać określony kawałek kodu wielokrotnie. W Javie wyodrębniamy pętle: while, do-while, for oraz rozszerzoną wersję pętli for, tak zwaną pętlę for-each.
W tym artykule przyjrzymy się najpopularniejszej pętli, którą jest pętla for. Wpis jest kontynuacją cyklu, który pozwala wejść w Javę od zupełnych podstaw. Poniżej znajdziesz listę artykułów wchodzących w skład darmowego kursu.
Standardowo, instrukcje w Javie wykonywane są linijka po linijce, a punktem startowym jest metoda main. Jednak co zrobić w sytuacji, gdy chcemy kod wykonać wielokrotnie?
Gdybyśmy chcieli wylosować 100 losowych liczb. Wylosowanie 100 liczb, to jedna operacja losowania, powtórzona 100 razy. Poznajmy zatem elementy, które będą nam potrzebne do napisania programu.
Pętla for (java)
Definicja pętli:
/*
for(inicjalizacja; warunek; iteracja) {
instrukcje;
}
*/
Pętla for rozpoczyna się od słowa kluczowego for, następnie w nawiasach możemy podać 3 elementy rozdzielone przecinkami. Umownie nazwane zostały: inicjalizacja, warunek oraz iteracja.
Kolejność wykonywania pętli
- Gdy program dotrze do pętli for, w pierwszej kolejności wykona blok „inicjalizacja”. (jeden raz)
- Następnie sprawdzany jest warunek logiczny
- gdy warunek jest poprawny (true), to następuje wejście do pętli i wykonywany jest blok „instrukcje”. Następnie wykonywany jest blok „iteracja” i powrót do punktu 2 (sprawdzenie warunku).
- Jeśli warunek zwróci false, to pętla kończy działanie, a więc program pomija pętlę.
W poprzednim artykule (Instrukcja warunkowa – IF) dowiedzieliśmy się, że istnieje coś takiego jak zmienna. Wiemy też, że zmienna może przechowywać różne typy danych. Ta wiedza przyda nam się przy konstruowaniu pierwszej pętli 🙂
Przykład 1
Napiszmy pętlę, która wyświetli 3 razy słowo „Witaj!”
/*
for(inicjalizacja; warunek; iteracja) {
instrukcje;
}
*/
Jak widzisz, powtórzyliśmy 3-krotnie wywołanie słowa „Witaj!”. Gdy zajdzie potrzeba powtórzenia czegoś, użyj pętli (inaczej, instrukcji iteracyjnej).
W tym konkretnym przykładzie na początku zadeklarowaliśmy zmienną typu całkowitego o początkowej wartości 0. Program po ustawieniu tej wartości sprawdził warunek, który był prawdziwy, ponieważ 0 jest mniejsze od 3. Wyświetlił więc wszystko, co znajduje się w pętli, po czym wykonał operację zwiększenia wartości zmiennej „i” o 1, przy użyciu operatora inkrementacji (i++).
Sprawdzanie warunku, wykonywanie ciała pętli oraz inkrementacja wykonywały się, dopóki warunek był prawdziwy. Zakończenie pętli nastąpiło w momencie gdy „i” otrzymało wartość 3. (3 nie jest mniejsze od 3).
Przykład 2
Napiszmy program, który wyświetli liczby od 22 do 67.
for(int i = 22; i <= 67; i++) {
System.out.println(i);
}
Przykład 3
Zmodyfikujmy program z przykładu 2 w taki sposób, aby wyświetlał tylko liczby parzyste.
Najprostrzym sposobem sprawdzenia parzystości, jest sprawdzenie czy po podzieleniu liczby przez 2, zostaje jakaś reszta z dzielenia.
np.
5/2, to 2 całości i 1 reszty
2/2, to 1 całość i 0 reszty
183/2, to 91 całości i 1 reszty
Zauważyć można, że przy dzieleniu liczb parzystych przez 2 reszta jest zawsze równa 0.
Operator modulo
Java dostarcza operator modulo (%) , który jest operatorem dwuargumetnowym, zwracającym resztę z dzielenia.
np.
5 % 2 = 1
2 % 2 = 0
183 % 2 = 1
Wróćmy do przykładu. Jeśli chceszmy wyświetlić wszystkie liczby od 22 od 67, ale tylko te które są parzyste, to wewnątrz pętli należy dodać warunek sprawdzający czy liczba jest parzysta.
class Program {
public static void main (String args[]) {
for(int i = 22; i <= 67; i++) {
if(i%2==0) {
System.out.println(i);
}
}
}
}
Przykład 4
Zróbmy przykład podany na samym początku artykułu 🙂 Jak wylosować 100 liczb ?
Losowanie liczb
Losowanie liczby możemy zrealizować za pomocą dostarczanej przez Javę klasy Random. Klasa random dostarcza metodę nextInt() zwracającą liczbę całkowitą. Pamiętaj o zaimportowaniu biblioteki przed deklaracją klasy. Więcej o klasie Random znajdziesz w dokumentacji Javy.
import java.util.Random;
class Program {
public static void main (String args[]) {
Random generator = new Random();
System.out.println(generator.nextInt());
}
}
Wiemy już jak wylosować liczbę, zobaczmy jak stworzyć pętlę, która wykona tą czynność 100 razy.
import java.util.Random;
class Program {
public static void main (String args[]) {
Random generator = new Random();
for(int i = 0; i < 100; i++) {
System.out.println(generator.nextInt());
}
}
}
Podsumowanie (java for)
Dowiedzieliśmy się, jaka jest konstrukcja pętli for w języku java. Pamiętaj, że używamy jej w sytuacji, gdy chcemy coś powtórzyć wiele razy. Pętla for jest kolejną po IF-ie instrukcją sterującą Javy, którą poznaliśmy.
Teraz zadanie dla Ciebie.
Zadanie. Napisz program, który wyświetli na ekranie liczby podzielne przez 3 od 44 do 15.
Podpowiedź: w celu zmniejszenia wartości zmiennej możesz użyć operatora dekrementacji (i–).
Powodzenia ! 😀 Daj znać jak Ci poszło.
W kolejnym artykule poznamy sposób na przechowywanie zbioru wartości, a więc tablice jedno i wielowymiarowe.