Lekcja 5. Pętla for w języku Java

pętla for java

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.

Wszystkie artykuły z cyklu “Kurs Java”:


Czego potrzebujesz:

  • zainstalowane JDK (instrukcja)
  • 15 min wolnego czasu

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

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

  1. Gdy program dotrze do pętli for, w pierwszej kolejności wykona blok “inicjalizacja”. (jeden raz)
  2. 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(int i = 0; i < 3; i++) {
	System.out.println("Witaj!");
}
pętla for java

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

Dowiedzieliśmy się, jaka jest konstrukcja pętli for. 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.

Subscribe
Powiadom o
guest
1 Komentarz
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Tomasz
Tomasz
1 rok temu
public class LoopForExample {

    public static void main(String[] args) {

        for (int i = 44; i >= 15; i--) {
            if (i % 3 == 0) {
                System.out.print(i + ", ");
            }
        }
    }
}