• PL
  • EN

Co to jest pętla?

W programowaniu pętle odgrywają bardzo ważną rolę. Podobnie jak instrukcja warunkowa, pętla pozwala zareagować na czynności wykonywane przez użytkownika. Różnica polega na tym, że można zdefiniować ile razy wykonają się instrukcje zawarte wewnątrz pętli. Istnieją trzy różne konstrukcje pętli. Warto poznać wszystkie trzy, ponieważ nie zawsze można stosować ich zamiennie.

Pętla FOR

Jest jedną z podstawowych pętli, która pozwala powtarzać daną sekwencję kodu określoną ilość razy. Z tego powodu bywa nazywana iteracyjną. Może być stosowana wtedy, gdy wiemy ile razy dany kod ma zostać powtórzony. Dla przykładu chcemy wyświetlić na ekranie komputera liczby od 10 do 1.

#include <iostream>
using namespace std;

int main() {
   for (int i = 10; i >= 1; i--) {
       cout << i << ", ";
   }
}

Aby zrozumieć jak działa PĘTLA FOR wyjaśnijmy sobie to, co znajduje się w nawiasie:


1. Tworzenie zmiennej i przypisanie jej wartości 10.
2. Warunek trwania pętli. Instrukcje zawarte pomiędzy nawiasami { } będą wykonywane tak długo, aż zmienna i będzie większa lub równa 1.
3. Aktualizacja zmiennej natychmiast po wykonaniu instrukcji wewnąrz nawiasów { } wartość zmiennej i jest zwiększana lub zmniejszana najczęściej o 1 za pomocą inkrementacji lub dekrementacji. W tym przykładzie zastosowano dekrementację. i--.

Po tej operacji po raz kolejny zostaje zbadany warunek wewnątrz pętli. Jeśli jest prawdziwy, cała procedura zostaje wykonana po raz kolejny. W przeciwnym razie pętla zostaje przerwana i wykonywana jest dalsza część kodu programu znajdująca się poza pętlą.

WARTO WIEDZIEĆ!

Musisz bardzo uważnie konstruować warunek istnienia pętli. Jeśli okaże się, że warunek jest niemożliwy do spełnienia, instrukcje nie wykonają się. Jeżeli źle dobierzesz aktualizację i wyjście z pętli będzie niemożliwe, powstanie pętla nieskończona, która zepsuje cały program.

Pętla WHILE oraz DO WHILE

Pozostałe dwie pętle są do siebie bardzo podobne. Różnią się konstrukcją i logiką działania, ale warunek ich istnienia tworzy się dokładnie tak samo. Jako pierwszą omówmy PĘTLĘ WHILE:

#include <iostream>
using namespace std;
int i=0;

int main() {
   while (i < 10) {
       cout << i << ", ";
       i++;
   }
}

W odróżnieniu do pętli FOR, w pętlach WHILE oraz DO WHILE iterator lub inna zmienna będąca przedmiotem porównania jest tworzona zanim pojawi się pętla. Ponadto aktualizacja tej zmiennej odbywa się razem z instrukcjami wewnątrz pętli. W tym przykładzie zadaniem pętli jest wyświetlenie liczb od 0 do 9.

W nawiasie znajduje się tylko warunek, który pozwoli na wykonanie instrukcji w pętli tylko wtedy, gdy warunek jest spełniony. Pętla DO WHILE działa trochę inaczej:

#include <iostream>
using namespace std;
int i=0;

int main() {
   do {
       cout << i << ", ";
       i++;
   } while (i < 10);
}

W przypadku tej pętli, niezależnie od tego czy warunek zwróci prawdę, jej instrukcje zostaną wykonane przynajmniej raz, ponieważ w pierwszej kolejności pojawia się polecenie DO, dopiero później pojawia się warunek WHILE. Oznacza to, że jeśli warunek zwróci fałsz, pętla i tak raz się wykona. Poniżej możesz porównać te dwa rozwiązania w formie graficznej:

What is a loop?

In programming, loops play a very important function. Like a conditional statement, a loop allows you to respond to actions performed by the user. The difference is that you can define how many times the instructions contained inside the loop. There are three different loop constructs. It is useful to know all three, because they are not always use them alternatively.

FOR loop

It is one of the basic loops that allows you to repeat a given code sequence a certain number of times. For this reason it is sometimes called iterative. This loop can be used when we know how many times a given code should be repeated. For example, we want to display the numbers from 10 to 1 on the computer screen.

#include <iostream>
using namespace std;

int main() {
   for (int i = 10; i >= 1; i--) {
       cout << i << ", ";
   }
}

To understand how the FOR loop works, let's explain what's in the brackets:


1. Create a variable and assigning it a value 10.
2. Loop condition. Instructions between brackets { } will be executed until the variable i is greater than or equal to 1 .
3. Update variable immediately after execution of statement inside brackets { } value of the variable i is usually increased or decreased by 1 using incrementation or decrementation. In this example, decrementation is used. i--.

After this operation, the condition is once again examined inside the loop. If it is true, the whole procedure is executed once again. Otherwise the loop is terminated and the rest of the program code outside the loop is executed.

GOOD TO KNOW!

You need to be very careful when constructing the loop condition. If the condition is found to be incorrect, the instruction will not execute. If you choose the wrong update and it is impossible to exit the loop, the loop will be infinite, which will destroy the whole program.

The WHILE loop and the DO WHILE loop

The other two loops are very similar to each other. They differ in construction and logic, but the condition for their existence is created in exactly the same way. As the first one let's see the WHILE loop:

#include <iostream>
using namespace std;
int i=0;

int main() {
   while (i < 10) {
       cout << i << ", ";
       i++;
   }
}

Unlike FOR loops, in WHILE and DO WHILE loops, the iterator or other variable being compared is created before the loop begins. In also, the updating of this variable is done along with the statements inside the loop. In this example, the objective of the loop is to display the numbers 0 through 9.

The brackets only contain a condition that will allow the statement in the loop to execute only if the condition is satisfied. The DO WHILE loop works a little differently:

#include <iostream>
using namespace std;
int i=0;

int main() {
   do {
       cout << i << ", ";
       i++;
   } while (i < 10);
}

In this loop, no matter if the condition returns true, its instructions will be executed at least once, because the DO statement appears first, followed by the WHILE condition. This means that if the condition returns false, the loop will execute once anyway. Below you can compare the two solutions in a graphical form: