Oto artykuł poświęcony gruntownemu wytłumaczeniu czym jest pętla "while" w programowaniu 🔥! Jest to jeden z podstawowych i uniwersalnych rodzajów pętli widzianych w dużej liczbie języków programowania, zaraz obok pętli "for" wyjaśnionej w osobnym materiale 🌟. Dlatego też dotykamy elementarnej części wiedzy, do której Cię zapraszam 🙂!
PĘTLA "WHILE" W PROGRAMOWANIU TEŻ WIELE RAZY CI SIĘ PRZYDA
Na sam początek przedstawię na czym polega pętla "while" i jak ważną odgrywa rolę bez względu na język programowania, a następnie przejdziemy do ukazania prostego przykładu użycia. Ponadto opiszemy sobie kiedy najlepiej zastosować pętlę "while" 👍.
CZYM JEST PĘTLA "WHILE" W PROGRAMOWANIU?
Pętla "while" w programowaniu, to konstrukcja pozwalająca na wielokrotne wykonywanie danego bloku instrukcji (tak jak pętle "for" i "do while") 🔁. Mnóstwo problemów wymagających powtórzenia pewnych czynności wiele razy, nie zostałoby rozwiązanych bez użycia pętli. To jest powód, dla którego po prostu trzeba znać pętlę "while", tak zresztą jak dwie wyżej wymienione pętle 💥.
Pętla "while" składa się tylko z warunku wejścia i to sprawia, że najlepszym jej zastosowaniem są sytuacje, w których nie jesteśmy w stanie przewidzieć ile konkretnie razy coś powinno zostać wykonane ☑️. Jasne, że nadal możemy skorzystać akurat z tej pętli w celu obsługi tablicy czy innej uporządkowanej struktury danych, tylko że będzie to wymagało trochę więcej pracy. Tutaj piszemy o najlepszym zastosowaniu 🙂.
KIEDY NAJLEPIEJ UŻYĆ PĘTLI "WHILE" W PROGRAMOWANIU?
Najlepiej stosować pętlę "while" do przypadków, w których na etapie pisania kodu nie jesteśmy w stanie określić ile razy coś powinno zostać wykonane. Ten rodzaj pętli (oraz "do while") składa się tylko z warunku wejścia, stąd też pasuje idealnie do sytuacji zawierających pewną losowość czy nieprzewidywalność co do momentu otrzymania oczekiwanego wyniku (np. szukanie konkretnej rzeczy w szufladach) 🎯.
Jeżeli masz przed sobą problem i potrafisz określić ile będzie potrzebnych powtórzeń, wtedy lepiej przesiąść się na pętlę "for", która posiada dodatkowe części składni przeznaczone do inicjalizacji zmiennej iteracyjnej oraz do modyfikacji jej wartości co iterację, która jest często stosowana do tworzenia warunku wejścia polegającego na sprawdzaniu jej aktualnej wartości, dzięki czemu nie trzeba jej tworzyć samemu na zewnątrz pętli 💡.
Teraz czas na zapoznanie się z zapisem w kodzie źródłowym!
JAK UTWORZYĆ PĘTLĘ "WHILE" W PROGRAMOWANIU?
Pętlę "while" tworzymy zazwyczaj tak samo we wszystkich językach programowania jakie ją posiadają. Oto jej budowa 👇:
while ([warunek wejścia])
{
[instrukcje]
}Gdy porównasz sobie tę postać do pętli "for", to gołym okiem widać, że jest dużo skromniejsza i składa się jedynie z warunku wejścia 😉. W tym miejscu wstawiamy warunek jaki tworzymy dokładnie tak samo, jak dla instrukcji warunkowych, korzystając z operatorów relacyjnych 😊.
Pętla "while" przebiega w taki sposób 👇:
- zbadanie warunku wejścia czy jest spełniony,
- jeżeli jest:
- wykonanie wszystkich instrukcji zawartych w środku,
- powrót do punktu zbadania warunku wejścia,
- jeżeli nie jest, to przerwanie pętli i przejście do dalszych instrukcji.
Warunek wejścia jest miejscem, w którym dochodzi do zadania sobie pytania: "czy dalej powinienem wykonywać w kółko te same instrukcje?" ⏏️. To może być każde wyrażenie, nawet dotyczące takiej samej sytuacji jak w pętli "for", że mamy zmienną iteracyjną i modyfikujemy ją co każde powtórzenie bloku instrukcji 🔁. To jeden z przykładów 👇:
i < 10Jeżeli jednak mówimy o pętli "while", to dużo lepiej ją zastosować do wyrażeń opierających się na niewiadomej liczbie koniecznych iteracji 🔥. Czyli wyrażenia tego typu 👇:
randomNumber == 1Chcąc wylosować liczbę z przedziału od A do B, szansa na otrzymanie liczby 1 nie jest stała i nie możemy przewidzieć ile będzie powtórzeń ❓.
Obojętnie której formy użyjemy, ważne jest aby pamiętać, że za którymś razem warunek powinien zostać niespełniony, aby nie doprowadzić do nieskończonej pętli i zawieszenia się programu "na amen" 😁. Dlatego choć można wstawić też stałe wartości "true" i "false", to jednak nie będzie to sensowne podejście 😅.
Pokażę teraz proste zastosowanie pętli "while", w której okaże się lepszym wyborem, niż pętla "for" 👀!
PRZYKŁAD UŻYCIA PĘTLI "WHILE" W PROGRAMOWANIU
Przykładowy kod będzie ukazywać losowanie liczby od 1 do 10 i konsekwentnemu losowaniu liczby w kółko, dopóki nie otrzymamy liczby 1 🔁. To jest przypadek najlepszy do skorzystania z pętli "while", ponieważ nie możemy wywnioskować ile iteracji będzie ostatecznie. Oto kod w języku C 👇:
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
srand(time(NULL));
int randomNumber = (rand() % 10) + 1;
int numberOfTimes = 0;
while (randomNumber != 1)
{
randomNumber = (rand() % 10) + 1;
numberOfTimes++;
}
printf("Liczba iteracji: %d\n", numberOfTimes);
return 0;
}W języku C, aby otrzymać losowanie liczb trzeba skorzystać z nieco większej ilości kodu bowiem należy też zadbać o konfigurację tzw. "ziarna" dla generatora liczb pseudolosowych 💥. Komputer w rzeczywistości nie losuje liczb, tylko otrzymuje uprzednio wygenerowaną sekwencję liczb na podstawie liczby całkowitej w postaci "ziarna" (więcej informacji znajduje się w osobnym artykule ℹ️) 😮.
Dlatego też przed napisaniem pierwszej instrukcji związanej z przykładem, zaczynamy od wywołania funkcji "srand" (wymagającej dyrektywy dołączającej "stdlib.h" u góry programu ⚠️) i wprowadzenia wyrażenia oznaczającego pobranie ziarna na podstawie zegarka systemowego (czas uniksowy) ⌚. Popularnym wyrażeniem jest wstawienie wywołania osobnej funkcji "time" (wymagającej dyrektywy dołączającej "time.h" u góry programu ⚠️) i wpisania "NULL" w miejscu parametru 👍.
Od tej pory można wyjaśniać kod związany już konkretnie z naszym przykładem ⏩!
Na samym początku tworzymy dwie zmienne jako liczby całkowite: jedna jako wylosowana liczba od 1 do 10 (stosujemy tu wyrażenie z operatorem modulo i dodawaniem, aby nałożyć przedział liczbowy 💡), a druga do liczenia ile iteracji pętli się odbyło, aby na końcu programu ją wypisać w konsoli 🙂.
Dalej mamy pętlę "while", głównego bohatera tego artykułu 😄. Warunkiem wejścia jest badanie czy wylosowana liczba równa się 1, co oznacza że może stać się prawdziwe za pierwszym razem, za drugim, za piątym, a może za setnym 💥! Nie wiadomo, zatem ta pętla będzie pasować najlepiej ✅.
Gdy ta liczba będzie inna niż 1, to następuje powtórne wylosowanie i zwiększenie licznika iteracji 🔁. Potem program ponownie sprawdza warunek czy może tym razem ta liczba jest równa 1. Jeżeli się okaże, że tak, to w tym miejscu pętla jest przerywana, a na końcu jest tylko wywołanie funkcji "printf" i wypisanie ile razy pętla musiała zostać wykonana. To jest koniec programu ✔️.
![]() |
Pętla "while" to druga podstawowa postać pętli w programowaniu składającej się tylko z warunku wejścia. Jest idealna do zadań, w których nie da się przewidzieć ile razy ma się wykonać dany blok instrukcji (coś może potrzebować tysiące powtórzeń, a coś może się zdarzyć już za pierwszym razem).
To już wszystko na temat pętli "while", co wymagało wytłumaczenia 😄. Jeżeli interesuje Cię poznanie pętli "do while" jako trzeciej podstawowej pętli w programowaniu, to klikaj w załącznik ⏏️!
