KWALIFIKACJA INF3 - CZERWIEC 2019

PYTANIE NR 37.
Ile razy zostanie wykonana pętla zapisana w przedstawionym skrypcie PHP?
Ilustracja przedstawia fragment kodu w języku PHP, który jest częścią pytania egzaminacyjnego z kwalifikacji zawodowej dla
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Liczbę wykonań pętli wyznacza się, zliczając, ile razy spełniony jest jej warunek wejścia przy kolejnych zmianach zmiennej sterującej (inicjalizacja → sprawdzenie warunku → ciało → krok).
Po prześledzeniu kolejnych wartości w podanym skrypcie otrzymuje się 6 wejść do ciała pętli.

Pełne wyjaśnienie:

Aby ustalić, ile razy wykona się pętla w PHP, trzeba policzyć wejścia do jej ciała (iteracje), a nie liczbę samych sprawdzeń warunku. Najbezpieczniejsza metoda na egzaminie to "symulacja" działania kodu krok po kroku.

Metoda krokowa:

  • Ustal wartość początkową zmiennej sterującej (inicjalizacja).
  • Sprawdź warunek pętli (czy jest spełniony).
  • Jeśli warunek jest spełniony, pętla wykona ciało (to jest 1 iteracja).
  • Zastosuj krok (inkrementację/dekrementację lub inną zmianę).
  • Wróć do sprawdzenia warunku i powtarzaj, aż warunek przestanie być spełniony.

W tego typu zadaniach najczęstsze błędy wynikają z granic warunku: < versus <= (różnica zwykle o 1 iterację) oraz z kroku, który nie zawsze wynosi 1. W podanym skrypcie, po podstawieniu kolejnych wartości zgodnie z inicjalizacją i krokiem oraz po zastosowaniu warunku zakończenia, ciało pętli zostaje wykonane 6 razy.

Dlaczego pozostałe wyniki bywają wybierane błędnie:

  • Wynik 5 zwykle wynika z pominięcia wartości początkowej albo z założenia, że warunek jest ostrzejszy (np. traktowanie <= jak <).
  • Wynik 7 często jest skutkiem doliczenia "dodatkowej" iteracji po przekroczeniu granicy (błąd off-by-one) lub pomylenia liczby sprawdzeń warunku z liczbą wejść do ciała.

Wskazówka egzaminacyjna: wypisz w brudnopisie kolejne wartości zmiennej sterującej w tabelce i zaznacz, dla których z nich warunek jest prawdziwy. Liczba zaznaczeń to liczba wykonań pętli.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Najpewniejsza metoda to symulacja: zapisz wartość początkową, sprawdź warunek, policz wejścia do ciała, wykonaj krok (np. ++), i powtarzaj aż warunek będzie fałszywy. Liczysz tylko wykonania ciała pętli, nie liczbę sprawdzeń warunku.
Różnica polega na tym, czy wartość graniczna jest jeszcze dopuszczona. Przy <= pętla wykona się także dla wartości równej granicy, co zwykle dodaje 1 iterację. Przy < kończy wcześniej, gdy tylko osiągnie granicę.
W zadaniach "Ile razy wykona się pętla?" standardowo liczy się wejścia do ciała pętli (ile razy wykona się blok instrukcji). Warunek może być sprawdzany o jeden raz więcej niż ciało, ale tego nie traktuje się jako iteracji.
Najczęściej: pomylenie < z <=, nieuwzględnienie wartości startowej, oraz doliczenie iteracji "po przekroczeniu" granicy. Pomaga wypisanie kolejnych wartości zmiennej sterującej i zaznaczenie, kiedy warunek jest jeszcze prawdziwy.
Tak. break przerywa pętlę natychmiast, więc liczba iteracji może być mniejsza niż wynikałoby z samego warunku i kroku. W analizie trzeba sprawdzić, czy i kiedy warunek przerwania może się spełnić.
continue zwykle nie zmienia liczby iteracji (wejść do pętli), ale zmienia to, co wykona się w danej iteracji, bo pomija część instrukcji w ciele. Na egzaminie uważaj, czy pytanie dotyczy "wejść do pętli", czy np. liczby wykonań konkretnej instrukcji.
Krok wynika z miejsca, gdzie zmienia się zmienna sterująca: w nagłówku for (np. $i+=2, $i--), albo w ciele pętli przy while. Nie zakładaj automatycznie ++; sprawdź dokładnie operator i wartość zmiany.
Pętla do...while sprawdza warunek dopiero po wykonaniu ciała, więc zawsze wykona się co najmniej raz, nawet jeśli warunek jest od początku fałszywy. To częsta pułapka w zadaniach o liczbę wykonań.
Sprawdź, czy zmienna używana w warunku faktycznie zmienia się tak, by kiedyś warunek stał się fałszywy. Jeśli krok jest w złym kierunku (np. rośnie, a warunek oczekuje spadku) lub brak zmiany, pętla może być nieskończona.
Ćwicz na krótkich fragmentach kodu: różne wartości startowe, warunki (<, <=, >), i kroki (+=2, --). Trenuj wypisywanie kolejnych wartości w tabelce. To szybko ujawnia granice i minimalizuje błędy off-by-one.
info

Statystycznie 47% 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 (dostęp: 2026-02-27)
  • PHP Manual: Control Structures - while, https://www.php.net/manual/en/control-structures.while.php (dostęp: 2026-02-27)
  • PHP Manual: Control Structures - do...while, https://www.php.net/manual/en/control-structures.do.while.php (dostęp: 2026-02-27)

Materiały:

  • Oficjalna dokumentacja PHP: pętle i struktury sterujące
  • Ćwiczenia z analizy kodu: wyznaczanie liczby iteracji dla różnych warunków
  • Materiały do INF.3 z podstaw programowania po stronie serwera (PHP)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego