Iteracja i pętla for

Iteracja polega na wykonywaniu tych samych czynności określoną z góry liczbę razy lub do momentu spełnienia pewnego warunku.

Pętla for pozwala zastosować w programach mechanizm iteracji, czyli wielokrotnie wykonywać pojedynczą instrukcję lub całą sekwencję poleceń.

Oto schemat zapisu pętli for:

Linia 1. for otwórz nawias okrągły deklaracja iteratora średnik warunek wykonywania pętli średnik zmiana wartości iteratora zamknij nawias okrągły otwórz nawias klamrowy. Linia 2. prawy ukośnik prawy ukośnik lista operacji. Linia 3. zamknij nawias klamrowy.

Deklaracja pętli zaczyna się od słowa kluczowego for, za którym wewnątrz pary  nawiasów okrągłych zapisano następujące instrukcje:

  • deklaracja iteratoraiteratoriteratora – definicja zmiennej sterującej działaniem pętli oraz przypisanie jej wartości początkowej;

  • warunek wykonywania pętli – warunek logiczny, po którego spełnieniu pętla jest wykonywana;

  • zmiana wartości iteratora – wyrażenie określające, w jaki sposób zmienia się wartość iteratora w każdym cyklu pętli (przykładowo, o ile zwiększa się lub zmniejsza).

Pętla for, która powinna zostać wykonana 10 razy, w języku Java ma postać:

Linia 1. for otwórz nawias okrągły int i znak równości 1 średnik i otwórz nawias ostrokątny znak równości 10 średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy. Linia 2. prawy ukośnik prawy ukośnik lista operacji. Linia 3. zamknij nawias klamrowy.
  • int i = 1 deklaracja iteratora i oraz przypisanie mu wartości 1;

  • i <= 10 warunek logiczny, zgodnie z którym pętla będzie wykonywana dopóty, dopóki wartość i jest mniejsza lub równa 10;

  • i++ polecenie zwiększenia wartości iteratora o 1 w każdym cyklu pętli (jest to skrócony zapis instrukcji i = i + 1).

Ważne!

Zwiększanie wartości zmiennej liczbowej nazywa się inkrementacją; zmniejszanie wartości to dekrementacja.

Ważne!

Polecenie zwiększenia wartości iteratora (i++) można również przedstawić w postaci ++i. Różnica polega na tym, że zapis ++i oznacza dokonanie inkrementacji przed rozpoczęciem cyklu pętli, zaś i++ nakazuje dokonać zwiększenia wartości iteratora po zakończeniu cyklu.

Oto przykład:

Linia 1. int i znak równości 1 średnik. Linia 3. System kropka out kropka println otwórz nawias okrągły i zamknij nawias okrągły średnik prawy ukośnik prawy ukośnik zostaje wypisana wartość 1. Linia 4. System kropka out kropka println otwórz nawias okrągły i plus plus zamknij nawias okrągły średnik prawy ukośnik prawy ukośnik zostaje wypisana wartość 1 otwórz nawias okrągły inkrementacja następuje na końcu przecinek czyli po wypisaniu wartości zmiennej zamknij nawias okrągły. Linia 5. System kropka out kropka println otwórz nawias okrągły i zamknij nawias okrągły średnik prawy ukośnik prawy ukośnik zostaje wypisana wartość 2. Linia 7. System kropka out kropka println otwórz nawias okrągły plus plus i zamknij nawias okrągły średnik prawy ukośnik prawy ukośnik zostaje wypisana wartość 3 otwórz nawias okrągły inkrementacja następuje na początku przecinek czyli przed wypisaniem wartości zmiennej zamknij nawias okrągły.

Operacje na liczbach

Wypisanie ciągu liczb z zakresu 110

Napiszemy w języku Java program, który wyświetli na ekranie ciąg liczb z zakresu od 1 do 10. Zaczniemy od utworzenia klasy Main oraz metody main(), która odpowiada za uruchomienie programu:

Linia 1. class Main otwórz nawias klamrowy. Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 4. zamknij nawias klamrowy. Linia 5. zamknij nawias klamrowy.

Następnie zastosujemy pętlę for. Ponieważ chcemy wypisać liczby z zakresu 110, umieszczone w ciele pętli instrukcje powinny zostać wykonane 10 razy. Przypisujemy zatem wartość początkową 1 iteratorowi noszącemu nazwę i (jest to zmienna typu całkowitego). Pętla będzie działać, dopóki wartość iteratora nie przekroczy 10. Po każdym cyklu pętli do zmiennej i dodamy 1:

Linia 1. class Main otwórz nawias klamrowy. Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 3. for otwórz nawias okrągły int i znak równości 1 średnik i otwórz nawias ostrokątny znak równości 10 średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy. Linia 5. zamknij nawias klamrowy. Linia 6. zamknij nawias klamrowy. Linia 7. zamknij nawias klamrowy.

Ponieważ iterator w każdym cyklu pętli przyjmuje kolejną wartość z zakresu 110, możemy po prostu wypisywać na ekranie zmienną i. Poszczególne liczby rozdzielimy znakiem spacji:

Linia 1. class Main otwórz nawias klamrowy. Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 3. for otwórz nawias okrągły int i znak równości 1 średnik i otwórz nawias ostrokątny znak równości 10 średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy. Linia 4. System kropka out kropka print otwórz nawias okrągły i plus cudzysłów cudzysłów zamknij nawias okrągły średnik. Linia 5. zamknij nawias klamrowy. Linia 6. zamknij nawias klamrowy. Linia 7. zamknij nawias klamrowy.
Ważne!

Operator dodawania (+) w poleceniu i + " " (linia numer 4) oznacza połączenie dwóch wyrażeń w jeden ciąg znaków. Takie działanie nazywa się konkatenacją.

Rezultatem działania przedstawionego programu jest wypisanie ciągu złożonego z liczb: 1 2 3 4 5 6 7 8 9 10.

Słownik

iterator
iterator

zmienna, od której wartości zależy, czy zostanie wykonany kolejny cykl pętli; inaczej zmienna sterująca lub licznik