KWALIFIKACJA INF3 - CZERWIEC 2022

PYTANIE NR 8.
Ile iteracji zrealizuje przedstawiona pętla zapisana w języku PHP?
Ilustracja przedstawia fragment kodu w języku PHP, który jest częścią pytania egzaminacyjnego związanego z kwalifikacją
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Liczbę iteracji pętli w PHP wyznacza się, analizując: wartość początkową licznika, warunek kontynuacji oraz krok zmiany licznika.
W tej pętli warunek jest spełniony dokładnie 5 razy, więc ciało pętli wykona się 5 iteracji.

Pełne wyjaśnienie:

Aby ustalić, ile iteracji wykona pętla w PHP, trzeba prześledzić jej działanie "krok po kroku". Niezależnie od tego, czy jest to for, while czy do...while, logika jest podobna: istnieje zmienna (licznik), warunek oraz sposób zmiany licznika.

Jak liczyć iteracje poprawnie?

  • Ustal stan początkowy (od jakiej wartości startuje licznik/zmienna sterująca).
  • Sprawdź warunek kontynuacji (np. czy użyto porównania ostrego czy nieostrego). To często decyduje o tym, czy pętla wykona się "o jeden raz" więcej lub mniej.
  • Określ krok (inkrementacja/dekrementacja i jej wartość). Zwróć uwagę, czy zmiana następuje po wykonaniu ciała pętli (typowe dla for/while), czy też pętla wykonuje się co najmniej raz (charakterystyczne dla do...while).
  • Zapisz kolejne wartości licznika w tabeli (trace): to minimalizuje ryzyko pomyłki.

Odpowiedź "5" oznacza, że warunek wejścia/pozostania w pętli jest spełniony dokładnie pięciokrotnie, a po piątym wykonaniu następuje zmiana wartości licznika powodująca niespełnienie warunku i zakończenie iteracji.

Dlaczego pozostałe odpowiedzi są błędne? Wartości takie jak "25" lub "26" zwykle wynikają z typowych błędów: policzenia zakresu wartości bez uwzględnienia kroku, pomylenia < z <= (błąd off-by-one) albo nieuwzględnienia momentu aktualizacji licznika. Na egzaminie zawsze sprawdzaj kolejność: inicjalizacja → test warunku → wykonanie ciała → zmiana licznika → ponowny test.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Policz iteracje, analizując kolejno: inicjalizację licznika, warunek kontynuacji i krok (inkrementację/dekrementację). Najpewniejsza metoda to spisanie kolejnych wartości licznika w tabeli i zliczenie, ile razy warunek jest spełniony przed wejściem w ciało pętli.
Najczęściej wynika to z pomylenia porównania ostrego z nieostrym (np. < vs <=) albo z nieuwzględnienia momentu zmiany licznika (czy inkrementacja następuje przed czy po wykonaniu ciała). To klasyczny błąd typu off-by-one.
W pętli while liczba wykonań zależy od wartości początkowych zmiennych użytych w warunku, samego warunku (kiedy przestaje być prawdziwy) oraz tego, czy i jak zmieniasz te zmienne w ciele pętli. Jeśli zmienna nie jest modyfikowana, grozi pętla nieskończona.
Pętla do...while w PHP zawsze wykona ciało przynajmniej raz, bo sprawdzenie warunku odbywa się dopiero po pierwszym wykonaniu. Dlatego przy liczeniu iteracji trzeba uwzględnić, że nawet fałszywy warunek początkowy nie zatrzyma pierwszego przebiegu.
Operator ++ zwiększa wartość zmiennej o 1. W pętlach jest używany do sterowania licznikiem, czyli "przesuwania" programu do spełnienia lub niespełnienia warunku. Zła inkrementacja (np. za duży/za mały krok) zmienia liczbę iteracji lub może prowadzić do pętli nieskończonej.
Iteracja to pojedyncze wykonanie ciała pętli. Jeśli pętla wykona się 5 razy, oznacza to 5 iteracji, czyli 5 przejść przez instrukcje znajdujące się w jej bloku. Na egzaminie zwykle trzeba policzyć, ile razy instrukcje zostaną wykonane, zanim warunek przestanie być spełniony.
Najprościej zrobić ręczny "trace": wypisz w kolumnie kolejne wartości licznika oraz sprawdź, czy dla każdej z nich warunek pętli jest prawdziwy. Zlicz liczbę wierszy, dla których pętla weszła do środka. Ta technika działa w zadaniach egzaminacyjnych bez potrzeby debuggera.
Nie zawsze, ale bardzo często. Różnica zależy od wartości startowej i kroku. Jeśli licznik dochodzi dokładnie do wartości granicznej, to <= pozwoli wykonać dodatkową iterację dla tej wartości, a < już nie. Gdy licznik "przeskakuje" granicę, różnicy może nie być.
Typowe błędy to: nieuwzględnienie wartości początkowej, założenie kroku 1 mimo innej zmiany licznika, pomylenie kierunku (inkrementacja vs dekrementacja), oraz pominięcie, że w do...while ciało wykona się przynajmniej raz. Pomaga spisanie stanów w tabeli.
Ćwicz krótkie fragmenty kodu z pętlami for, while i do...while, a następnie licz iteracje ręcznie metodą trace. Szczególną uwagę zwróć na warunki < vs <= oraz na to, kiedy następuje inkrementacja. To najczęstszy punkt egzaminacyjnych pułapek.
info

Statystycznie 41% uczniów zna prawidłową odpowiedź. trudne

Źródła:

  • PHP Manual — Control Structures: for, https://www.php.net/manual/en/control-structures.for.php - accessed 2026-03-01
  • PHP Manual — Control Structures: while, https://www.php.net/manual/en/control-structures.while.php - accessed 2026-03-01
  • PHP Manual — Control Structures: do...while, https://www.php.net/manual/en/control-structures.do.while.php - accessed 2026-03-01

Materiały:

  • Dokumentacja PHP: instrukcje sterujące (pętle)
  • Ćwiczenia z ręcznego śledzenia kodu (trace table) dla pętli for/while
  • Materiały do INF.3 z podstaw PHP (iteracje, warunki, operatory porównania)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego