KWALIFIKACJA INF2 - TEST WIEDZY NR 5

PYTANIE NR 12.
Jaka jest różnica między pętlą while a pętlą for w językach skryptowych takich jak Python czy Bash?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Pętla for służy do wykonywania instrukcji dla kolejnych elementów pewnego zbioru danych (np. listy/zakresu), czyli do iteracji. Pętla while wykonuje blok kodu tak długo, jak długo warunek logiczny pozostaje spełniony; liczba powtórzeń wynika z warunku.

Pełne wyjaśnienie:

Różnica między pętlą for a while dotyczy przede wszystkim tego, co steruje powtarzaniem:

  • for jest pętlą iteracyjną: jej naturalnym zastosowaniem jest przechodzenie po kolejnych elementach pewnej kolekcji lub po wartościach generowanych przez konstrukcję iterowalną (np. zakres). Dzięki temu typowo nie musisz ręcznie zwiększać licznika ani pilnować, kiedy skończyć — mechanizm iteracji "podaje" kolejne elementy.
  • while jest pętlą sterowaną warunkiem: wykonuje blok kodu dopóki warunek jest prawdziwy. To programista odpowiada za to, aby warunek kiedyś przestał być spełniony (np. przez zmianę zmiennej, odczyt danych, obsługę zdarzenia). W przeciwnym razie łatwo o pętlę nieskończoną.

Dlatego odpowiedź "Pętla for jest używana do iteracji przez sekwencje, natomiast pętla while jest używana do wykonywania bloku kodu dopóki spełniony jest określony warunek" oddaje kluczową ideę: for wiąże się z iteracją po elementach, a while z warunkiem kontynuacji.

Dlaczego pozostałe propozycje są błędne?

  • Stwierdzenie, że "while jest używana do iteracji przez sekwencje" odwraca typowe role pętli. Owszem, da się iterować używając while (np. przez indeks), ale nie jest to podstawowy, najczytelniejszy wzorzec.
  • Opis "while … określoną liczbę razy" jest mylący: while nie ma wbudowanego "licznika powtórzeń". Można go dopisać, ale wtedy liczba iteracji nadal wynika z warunku.
  • Teza, że pętle są identyczne i zamienne, jest fałszywa: choć czasem da się przepisać jedną na drugą, różnią się stylem, czytelnością oraz typowym ryzykiem błędów (np. pominięcie aktualizacji warunku w while).

Wskazówka egzaminacyjna: gdy w treści zadania pojawia się "dla każdego elementu z listy/zbioru/zakresu" — zwykle pasuje for. Gdy pojawia się "dopóki", "aż do momentu, gdy", "czekaj, aż" — zwykle pasuje while.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Pętla while wykonuje blok kodu tak długo, jak długo spełniony jest warunek logiczny. Używa się jej, gdy nie znasz z góry liczby powtórzeń, np. gdy czekasz na zdarzenie, przetwarzasz dane aż do końca lub powtarzasz próbę do skutku.
Pętla for służy do iterowania po kolejnych elementach zbioru danych (np. liście, zakresie, zbiorze plików). W skryptach administracyjnych jest typowa do operacji "dla każdego pliku/użytkownika/hosta wykonaj…", bo jest czytelna i ogranicza ryzyko błędów z licznikiem.
Iteracja oznacza przechodzenie po kolejnych elementach (np. elementach listy). Warunek to wyrażenie logiczne decydujące, czy pętla ma trwać dalej. W praktyce for zwykle opiera się na iteracji po elementach, a while na warunku kontynuacji.
W while to programista musi doprowadzić do tego, by warunek w końcu stał się fałszywy (np. zwiększyć licznik, zmienić stan). Jeśli aktualizacja stanu nie nastąpi lub jest błędna, warunek pozostaje prawdziwy i pętla nie kończy działania.
Często da się przepisać for na while (np. iterując indeksem), ale nie zawsze jest to równie czytelne i bezpieczne. For automatyzuje pobieranie kolejnych elementów, a while wymaga ręcznego sterowania stanem, co zwiększa ryzyko pomyłek.
Idea "powtarzaj dla kolejnych wartości" jest podobna, ale szczegóły różnią się. W Bash pętla for często iteruje po liście słów lub nazw plików (wynik dopasowań), a w Pythonie po obiektach iterowalnych. Na egzaminie liczy się rozpoznanie: for = iteracja, while = warunek.
Jeśli problem brzmi jak "dla każdego elementu z listy/zbioru/zakresu wykonaj operację", zwykle najlepsza jest for. To typowe w administracji: dla każdego pliku w katalogu, dla każdej usługi, dla każdego użytkownika wykonaj sprawdzenie lub akcję.
Gdy występuje warunek typu "dopóki", "aż", "do momentu gdy" albo gdy liczba powtórzeń zależy od wyniku (np. ponawiaj połączenie aż zadziała), wtedy pasuje while. Ważne jest też zapewnienie zmiany stanu, aby pętla mogła się zakończyć.
Najczęściej: brak aktualizacji zmiennej sterującej warunkiem, złe ustawienie warunku (np. odwrotny operator), oraz pomylenie momentu sprawdzania warunku z wykonaniem bloku. W testach warto szukać odpowiedzi, która mówi o "wykonywaniu dopóki warunek jest spełniony".
W INF.2 pętle pojawiają się w skryptach automatyzujących: przetwarzanie plików logów, masowe operacje na kontach, sprawdzanie dostępności hostów, wykonywanie tej samej komendy na wielu zasobach oraz powtarzanie prób (np. oczekiwanie na usługę) do spełnienia warunku.
info

To pytanie poprawnie rozwiązuje 65% zdających egzamin. średnie

W praktyce zawodowej kluczowe jest to, że pętla for służy do wykonywania instrukcji dla kolejnych elementów pewnego zbioru danych (np. listy/zakresu), czyli do iteracji.

Źródła:

  • Python Documentation – The Python Tutorial, section "More Control Flow Tools" (for/while): https://docs.python.org/3/tutorial/controlflow.html (dostęp: 2026-03-01)
  • GNU Bash Reference Manual – "Looping Constructs" (for/while/until): https://www.gnu.org/software/bash/manual/bash.html#Looping-Constructs (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja języka Python: sekcja o instrukcjach sterujących (for/while)
  • Dokumentacja Bash (GNU Bash Reference Manual): sekcja o konstrukcjach pętli
  • Materiały szkolne z podstaw algorytmiki: iteracje i warunki (flow control)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego