Pętle są jednym z najważniejszych narzędzi używanych w programowaniu. Dzięki nim nasz kod staje się o wiele krótszy, a tym samym bardziej przejrzysty. Pętle, którymi się teraz zajmiemy, to pętle while oraz do .. while. Zanim jednak przejdziemy do implementacji tych pętli w języku C++, przedstawmy kilka najważniejszych informacji.

Pętla while składa się z kluczowego słowa while, występującego na początku pętli.

Instrukcje zawarte w pętli będą wykonywane tylko w przypadku spełnienia warunku zawartego w pętli while. Jeżeli warunek nie będzie spełniony na początku, żadne operacje zawarte w pętli nie zostaną wykonane.

Pętla do .. while składa się ze słowa kluczowego do, które znajduje się na początku pętli, a kończy się słowem kluczowym while.

Warunek pętli sprawdzany jest na końcu, dlatego instrukcje zawarte w pętli wykonają się co najmniej jeden raz.

Pętla while

Zajmijmy się pętlą while i jej składnią w języku C++.

Linia 1. while otwórz nawias okrągły warunek zamknij nawias okrągły otwórz nawias klamrowy. Linia 2. prawy ukośnik prawy ukośnik Instrukcje. Linia 3. zamknij nawias klamrowy.

Przeanalizujmy poniższą pętlę while. Za co jest odpowiedzialna?

Linia 1. int i znak równości 4. Linia 3. while otwórz nawias okrągły i zamknij nawias ostrokątny 0 zamknij nawias okrągły otwórz nawias klamrowy. Linia 4. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów INFORMATYKA cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik. Linia 6. i minus minus średnik. Linia 7. zamknij nawias klamrowy.

Na początek deklarujemy zmienną i, której wartość będzie równa 4. Następnie, dopóki zmienna i jest większa od zera, wypisujemy słowo „INFORMATYKA”. Z każdą iteracją pętli, zmienna i będzie dekrementowanadekrementacjadekrementowana. W związku z tym program wyświetli na ekranie cztery razy napis „INFORMATYKA”. W przypadku, gdy i stanie się mniejsze lub równe zero, warunek nie będzie już spełniony i pętla nie zostanie wykonana więcej razy.

Spróbujmy zmodyfikować powyższą pętlę tak, aby jej warunek był zawsze spełniony.

Linia 1. int i znak równości 4. Linia 3. while otwórz nawias okrągły i zamknij nawias ostrokątny 0 zamknij nawias okrągły otwórz nawias klamrowy. Linia 4. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów INFORMATYKA cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik. Linia 5. zamknij nawias klamrowy.

Wystarczyło z naszej pętli usunąć dekrementację zmiennej i. Dzięki temu, ta zmienna przez cały czas działania pętli będzie przechowywała wartość 4. Liczba 4 jest większa od 0, tym samym warunek będzie zawsze spełniony i powstanie pętla nieskończonapętla nieskończonapętla nieskończona.

Aby uzyskać pętlę nieskończoną, możemy użyć następującej składni:

Linia 1. while otwórz nawias okrągły true 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 otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik. Linia 3. zamknij nawias klamrowy.

Na wyjściu programu otrzymamy ciągłe, nieskończone wyświetlanie tekstu „PĘTLA NIESKOŃCZONA”. W tym celu wystarczyło umieścić w warunku wykonania pętli true.

Co w przypadku, gdy chcielibyśmy, aby nasza pętla nie wykonała się ani razu?

Jest na to sposób:

Linia 1. int i znak równości 4. Linia 3. while otwórz nawias okrągły i zamknij nawias ostrokątny 5 zamknij nawias okrągły otwórz nawias klamrowy. Linia 4. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów TEN NAPIS SIĘ NIE WYPISZE cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik. Linia 5. zamknij nawias klamrowy.

Wystarczyło umieścić w warunku wykonania pętli wyrażenie, które jest nieprawdziwe. Liczba przechowywana w zmiennej i, to znaczy liczba 4, nie jest większa od 5, dlatego pętla nie zostanie wykonana ani razu.

Pętla do .. while

Istnieje inna pętla – do .. while. Jej składnia w języku C++ wygląda następująco:

Linia 1. do otwórz nawias klamrowy. Linia 2. prawy ukośnik prawy ukośnik Instrukcje. Linia 3. zamknij nawias klamrowy while otwórz nawias okrągły warunek zamknij nawias okrągły średnik.

Jaka jest różnica między omawianymi dwiema pętlami?

Przeanalizujmy poniższą pętlę w celu uzyskania odpowiedzi na to pytanie.

Linia 1. do otwórz nawias klamrowy. Linia 2. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów KOCHAM INFORMATYKĘ cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik. Linia 3. zamknij nawias klamrowy while otwórz nawias okrągły 1 zamknij nawias ostrokątny 2 zamknij nawias okrągły średnik.

Mimo że warunek nie jest spełniony (1 nie jest większe od 2), na ekranie zostanie wyświetlony napis „KOCHAM INFORMATYKĘ”. Dlaczego? W pętli do .. while warunek sprawdzany jest na jej końcu. Możemy zatem być pewni, że używając właśnie tej pętli, instrukcje w niej zawarte zostaną wykonane co najmniej jeden raz, tak jak w powyższym przypadku.

Upewnijmy się, że pętla do .. while wykona się co najmniej jeden raz, a pętla while może nie wykonać się ani razu.

Linia 1. do otwórz nawias klamrowy. Linia 2. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów Jestem do kropka kropka while cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik. Linia 3. zamknij nawias klamrowy while otwórz nawias okrągły 1 zamknij nawias ostrokątny 2 zamknij nawias okrągły średnik. Linia 5. while otwórz nawias okrągły 1 zamknij nawias ostrokątny 2 zamknij nawias okrągły otwórz nawias klamrowy. Linia 6. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów Jestem while cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik. Linia 7. zamknij nawias klamrowy.

Na wyjściu otrzymamy „Jestem do .. while”. Zatem instrukcje zawarte w pętli while nie wykonały się ani razu, w przeciwieństwie do instrukcji w pętli do .. while.

Słownik

dekrementacja
dekrementacja

zmniejszenie wartości argumentu o jeden

pętla nieskończona
pętla nieskończona

pętla, której warunek wykonania jest zawsze spełniony