KWALIFIKACJA INF3 - STYCZEŃ 2020

PYTANIE NR 27.
W języku PHP zapisano instrukcję pętli przedstawioną poniżej. Ile powtórzeń będzie miała podana pętla, jeśli zmienna sterująca nie jest modyfikowana w jej wnętrzu, oraz nie wprowadzono instrukcji modyfikacji pętli typu break?

for ($i = 10; $i <= 100; $i += 10)

A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Pętla startuje z $i = 10, działa dopóki spełniony jest warunek $i <= 100 i co iterację zwiększa licznik o 10 ($i += 10). Ciało pętli wykona się dla wartości 10, 20, 30, 40, 50, 60, 70, 80, 90 i 100, czyli łącznie 10 razy.

Pełne wyjaśnienie:

W pętli for w PHP mamy trzy kluczowe elementy: inicjalizację licznika, warunek kontynuacji oraz modyfikację licznika po każdej iteracji.

  • Inicjalizacja: $i = 10 oznacza, że pierwsza rozważana wartość licznika to 10.
  • Warunek: $i <= 100 mówi, że pętla ma się wykonywać tak długo, jak $i jest mniejsze lub równe 100. Znak <= jest istotny, bo obejmuje też wartość 100.
  • Krok (modyfikacja): $i += 10 zwiększa $i o 10 po każdym wykonaniu ciała pętli.

Skoro zaczynamy od 10 i dodajemy 10, to kolejne wartości licznika to: 10, 20, 30, 40, 50, 60, 70, 80, 90, 100. Dla każdej z tych wartości warunek $i <= 100 jest spełniony, więc ciało pętli wykona się 10 razy.

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

  • "9 powtórzeń" wynika najczęściej z pominięcia wartości 100, jakby warunek był $i < 100 zamiast $i <= 100. Wtedy ostatnią wartością byłoby 90 i faktycznie wyszłoby 9 iteracji.
  • "11 powtórzeń" pojawia się, gdy ktoś błędnie doliczy dodatkową iterację po osiągnięciu 100. Po wykonaniu iteracji dla 100 następuje krok $i += 10, więc $i staje się 110 i warunek $i <= 100 nie jest już spełniony — pętla kończy się bez kolejnego wykonania ciała.
  • "100 powtórzeń" to typowe pomylenie wartości granicznej (100) z liczbą wykonań. Liczba iteracji zależy od zakresu oraz kroku, a tu krok wynosi 10, więc iteracji jest znacznie mniej niż 100.

Wskazówka egzaminacyjna: gdy masz pętlę o stałym kroku, wypisz 3–4 pierwsze wartości licznika i sprawdź, czy ostatnia wartość graniczna jest włączona (operator <=) czy wyłączona (operator <). To szybko eliminuje błędy w liczeniu iteracji.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Pętla for ma trzy części: start (inicjalizacja), warunek kontynuacji i krok. Najpierw ustawia licznik, potem sprawdza warunek, wykonuje ciało pętli i na końcu modyfikuje licznik. Cykl powtarza się, dopóki warunek jest prawdziwy.
Zapis $i += 10 to skrót od $i = $i + 10. Oznacza, że po każdej iteracji pętli wartość licznika wzrasta o 10. Dzięki temu pętla "przeskakuje" co 10, zamiast zwiększać licznik o 1.
Operator <= oznacza "mniejsze lub równe", więc dopuszcza wykonanie pętli także dla wartości granicznej. Gdy w warunku jest <, wartość graniczna nie wchodzi do iteracji. To często zmienia wynik o dokładnie 1 iterację.
Najpewniej jest wypisać wartości licznika: zacznij od startu, dodawaj krok i sprawdź, czy każda wartość spełnia warunek. Alternatywnie policz, ile jest "kroków" od startu do końca, pamiętając, czy koniec jest włączony (np. przez <=).
Tak. Jeśli warunek zawsze pozostaje prawdziwy albo licznik nie zmienia się w kierunku zakończenia, pętla może działać bez końca. Typowy przykład to brak modyfikacji licznika lub modyfikacja w złą stronę. Zwykle zabezpiecza się to poprawnym krokiem lub przerwaniem.
break nie jest wymagany do poprawnego działania pętli. Jeśli warunek i krok są poprawne, pętla zakończy się naturalnie, gdy warunek przestanie być spełniony. break służy do wcześniejszego wyjścia, np. po znalezieniu wyniku.
Najczęstsze błędy to: pominięcie wartości granicznej przy <=, ignorowanie kroku (liczenie jakby było +1), doliczenie dodatkowej iteracji po przekroczeniu warunku oraz pomylenie liczby iteracji z wartością końcową (np. 100).
Przy warunku $i < 100 pętla nie wykona się dla $i = 100, bo 100 nie jest mniejsze od 100. Ostatnią wartością będzie wtedy 90 (przy kroku 10). W praktyce liczba iteracji zmniejszy się o 1 w porównaniu do warunku z <=.
Można, ale zwykle nie jest to zalecane, bo utrudnia przewidywanie liczby iteracji i może powodować pomijanie wartości lub pętle nieskończone. Standardowo licznik zmienia się w trzeciej części pętli for, a dodatkowe zmiany stosuje się tylko świadomie.
Pętle służą np. do generowania elementów HTML (list, tabel), iteracji po rekordach z bazy danych, budowania menu na podstawie tablicy czy tworzenia paginacji. Umiejętność policzenia iteracji pomaga ocenić, ile elementów zostanie wygenerowanych na stronie.
info

Około 63% zdających odpowiada poprawnie na to pytanie. średnie

W praktyce zawodowej kluczowe jest to, że pętla startuje z $i = 10, działa dopóki spełniony jest warunek $i &lt;= 100 i co iterację zwiększa licznik o 10 ($i += 10).

Źródła:

  • PHP Manual — Control Structures: for, https://www.php.net/manual/en/control-structures.for.php (dostęp: 2026-02-27)
  • PHP Manual — Comparison Operators, https://www.php.net/manual/en/language.operators.comparison.php (dostęp: 2026-02-27)
  • PHP Manual — Assignment Operators (+=), https://www.php.net/manual/en/language.operators.assignment.php (dostęp: 2026-02-27)

Materiały:

  • Oficjalna dokumentacja PHP: instrukcje sterujące (pętle)
  • Ćwiczenia: śledzenie wartości zmiennej w pętli (trace table)
  • Zadania praktyczne z podstaw programowania PHP (pętle, warunki)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego