Pętle w programowaniu i algorytmice pozwalają na wielokrotne wykonywanie określonych operacji. Jeżeli na przykład chcemy 20 razy wypisać na ekran konsoli jakąś zmienną, nie musimy dwudziestokrotnie kopiować operacji wypisania – wystarczy, że użyjemy pętli. Dzięki temu kod staje się krótszy i bardziej przejrzysty.

Przykład 1

Przypomnijmy krótko budowę pętli.

Linia 1. dla j znak równości 1 przecinek 2 przecinek 3 przecinek kropka kropka kropka przecinek 20 wykonuj. Linia 2. wypisz j.

Powyższa pętla wykona się 20 razy i przy każdym wykonaniu (iteracji) zostanie wypisana wartość zmiennej j, czyli w tym przykładzie będą to kolejno 1, 2, 3, …, 20.

Pętla for w języku C++

Przejdźmy do przeanalizowania budowy pętli for w języku programowania C++. W tym wypadku wygląda ona następująco:

Linia 1. for otwórz nawias okrągły zmienna sterująca średnik warunek średnik operacja zamknij nawias okrągły otwórz nawias klamrowy. Linia 2. prawy ukośnik prawy ukośnik instrukcje. Linia 3. zamknij nawias klamrowy.
Przykład 2

Spróbujmy utworzyć pętlę, której działanie będzie analogiczne do działania pętli z przykładu 1.

Linia 1. for otwórz nawias okrągły int j znak równości 1 średnik j otwórz nawias ostrokątny znak równości 20 średnik j plus plus zamknij nawias okrągły otwórz nawias klamrowy. Linia 2. cout otwórz nawias ostrokątny otwórz nawias ostrokątny j średnik. Linia 3. zamknij nawias klamrowy.

Pierwszym krokiem jest zadeklarowanie zmiennej sterującejzmienna sterującazmiennej sterującej j, której wartość będzie równa 1. Następnie definiujemy warunek, że pętla ma się wykonywać, dopóki j jest mniejsze lub równe 20. Ostatni krok to napisanie operacji inkrementacjiinkrementacjainkrementacji zmiennej j wraz z każdą iteracją.

Przykład 3

Przeanalizujmy kolejny przykład. Spróbujmy utworzyć blok pętli for, której zadaniem będzie wyliczenie sumy liczb całkowityc parzystych należących do przedziału 2, 100.

Linia 1. int suma znak równości 0 średnik. Linia 3. for otwórz nawias okrągły int i znak równości 2 średnik i otwórz nawias ostrokątny znak równości 100 średnik i plus znak równości 2 zamknij nawias okrągły otwórz nawias klamrowy. Linia 4. suma plus znak równości i średnik. Linia 5. zamknij nawias klamrowy.

Aby obliczyć sumę liczb całkowitych parzystych z przedziału 2, 100, zmiennej i przypisujemy wartość 2, w warunku sprawdzamy, czy zmienna i jest mniejsza bądź równa 100, a jako operacja wykonywana przy każdej iteracji zostaje zdefiniowana i+=2. Wewnątrz pętli nadpisujemy wartość sumy o kolejne wartości zmiennej i.

Pętla nieskończona for

Aby utworzyć pętlę nieskończoną, należy zdefiniować warunek, który zawsze będzie spełniony:

Linia 1. int j znak równości 0 średnik. Linia 3. for otwórz nawias okrągły int i znak równości 0 średnik j otwórz nawias ostrokątny 2 średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy. Linia 4. cout otwórz nawias ostrokątny otwórz nawias ostrokątny j średnik. Linia 5. zamknij nawias klamrowy.

Mimo że zmienna i jest inkrementowana wraz z każdą iteracją, pętla będzie się wykonywała w nieskończoność, ponieważ spełnienie warunku w pętli jest zależne od wartości zmiennej j. W przypadku powyższego fragmentu kodu wartość zmiennej j nie ulega zmianie – 0 zawsze będzie mniejsze od 2, więc pętla będzie w nieskończoność wypisywała wartość zmiennej j, czyli 0.

Innym sposobem na to, aby pętla for wykonywała się w nieskończoność, jest zadeklarowanie pętli bez warunku, zmiennej sterującej oraz operacji:

Linia 1. for otwórz nawias okrągły średnik średnik zamknij nawias okrągły otwórz nawias klamrowy. Linia 2. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów PĘTLA NIESKOŃCZONA cudzysłów średnik. Linia 3. zamknij nawias klamrowy.

Pętla for z kilkoma zmiennymi sterującymi

Warto przedstawić przykład pętli, która zawiera nie jedną, a kilka zmiennych. W takim wypadku może ona wyglądać następująco:

Linia 1. for otwórz nawias okrągły int i znak równości 0 przecinek j znak równości 10 średnik i otwórz nawias ostrokątny 10 średnik i plus plus przecinek j minus minus zamknij nawias okrągły otwórz nawias klamrowy. Linia 2. cout otwórz nawias ostrokątny otwórz nawias ostrokątny i otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny j otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik. Linia 3. zamknij nawias klamrowy.

Zostaje zatem zadeklarowana zmienna i o wartości początkowej równej 0, a po przecinku druga zmienna, czyli j wraz z wartością początkową równą 10. W operacjach wykonywanych z każdą iteracją są: inkrementacja zmiennej i oraz dekrementacja zmiennej j. Wynikiem działania pętli będzie wydrukowanie na ekran:

Linia 1. 0 10. Linia 2. 1 9. Linia 3. 2 8. Linia 4. 3 7. Linia 5. 4 6. Linia 6. 5 5. Linia 7. 6 4. Linia 8. 7 3. Linia 9. 8 2. Linia 10. 9 1.

Słownik

inkrementacja
inkrementacja

zwiększanie wartości danego argumentu o 1

zmienna sterująca
zmienna sterująca

zmienna zawierająca informację o numerze cyklu wykonywanego przez pętlę