KWALIFIKACJA INF3 - CZERWIEC 2015

PYTANIE NR 30.
Wynikiem działania zamieszczonej pętli zapisanej językiem PHP jest wypisanie kolejnych liczb
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:
Poprawne jest "od 10 do 1", ponieważ w analizowanej pętli wartość startowa wynosi 10, w każdym obiegu jest zmniejszana o 1 (dekrementacja), a warunek pozwala wykonywać iteracje aż do osiągnięcia 1. Dlatego liczby pojawiają się w kolejności malejącej, z uwzględnieniem obu krańców zakresu.

Pełne wyjaśnienie:

W pętlach w PHP kluczowe jest przeanalizowanie trzech elementów: wartości początkowej zmiennej sterującej, warunku kontynuacji oraz kroku (czyli tego, jak zmienna zmienia się po każdej iteracji). To właśnie te trzy składniki decydują o tym, jakie liczby i w jakiej kolejności zostaną wypisane.

Odpowiedź "od 10 do 1" jest właściwa, gdy pętla:

  • zaczyna od wartości 10 (inicjalizacja),
  • wypisuje bieżącą wartość w ciele pętli,
  • po każdym obiegu zmniejsza ją o 1 (np. dekrementacja),
  • kończy działanie dopiero wtedy, gdy zmienna przestaje spełniać warunek (np. gdy spadnie poniżej 1).

W takiej sytuacji kolejne wypisywane liczby tworzą ciąg malejący: 10, 9, 8, …, 2, 1. To oznacza, że oba krańce (10 i 1) pojawiają się w wyniku.

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

  • "od 10 do 2" pomijałoby wartość 1. Taki wynik wystąpiłby, gdyby warunek zakończenia wykluczał 1 (np. wymagał, by zmienna była większa od 1, a nie większa lub równa 1).
  • "od 1 do 10" oznaczałoby zliczanie rosnące. Do tego potrzebny byłby krok zwiększający wartość (inkrementacja) i warunek ustawiony pod wzrost, więc to inna logika pętli.
  • "od 2 do 10" również sugeruje zliczanie rosnące oraz pominięcie 1 jako wartości początkowej; to nie pasuje do pętli odliczającej od 10.

Wskazówka egzaminacyjna: zawsze sprawdzaj, czy pętla zawiera ++ czy -- oraz czy warunek używa > czy >=. Jedna drobna różnica w znaku potrafi zmienić, czy liczba krańcowa (np. 1) zostanie wypisana.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Pętla for wykonuje się w kolejności: inicjalizacja zmiennej, sprawdzenie warunku, wykonanie ciała, wykonanie kroku (np. ++ lub --) i ponowne sprawdzenie warunku. Dzięki temu łatwo przewidzieć, jakie wartości będą wypisywane w kolejnych iteracjach.
Decyduje warunek pętli: gdy użyto porównania z równością (np. "większe lub równe"), wartość graniczna zostanie uwzględniona. Gdy warunek jest "ściśle większe" lub "ściśle mniejsze", liczba krańcowa może zostać pominięta.
Dekrementacja (zmniejszanie wartości zmiennej sterującej) sprawia, że po każdej iteracji pętli kolejna wypisywana liczba jest mniejsza od poprzedniej. Jeśli start jest równy 10 i krok to -1, to naturalnym wynikiem jest odliczanie: 10, 9, 8… aż do spełnienia warunku końcowego.
Sprawdź dwie rzeczy: wartość początkową oraz kierunek zmiany (inkrementacja lub dekrementacja). Start 10 i krok -- sugerują zliczanie w dół. Start 1 i krok ++ sugerują zliczanie w górę. Warunek musi być spójny z tym kierunkiem.
Najczęściej myli się znaki porównania (np. > zamiast >=), pomija się analizę kroku (++/--) oraz zakłada zliczanie rosnące "z rozpędu". Błąd daje też pomieszanie kolejności: student myśli, że zmienna zmienia się przed pierwszym wypisaniem.
Tak. Zarówno for, jak i while mogą wypisać ten sam zakres liczb, jeśli mają te same: wartość startową, warunek kontynuacji i krok zmiany. Różni się składnia, ale logika iteracji pozostaje taka sama, więc wynik można uzyskać na różne sposoby.
Wypisz na kartce trzy elementy pętli: start, warunek, krok. Następnie wykonaj 3–4 iteracje "ręcznie", zapisując wartości po kolei. Jeśli widzisz trend (malejący lub rosnący), łatwo określisz cały zakres i sprawdzisz, czy wartości krańcowe są uwzględnione.
Gdy warunek jest fałszywy już na początku, zanim ciało pętli zostanie wykonane. Przykładowo: jeśli startujesz od wartości, która nie spełnia warunku (np. zbyt mała/duża dla danego porównania), pętla zakończy się od razu i nic nie wypisze.
To zmienia uwzględnienie wartości granicznej. Warunek z >= pozwala wykonać iterację także dla wartości równej progowi (np. 1), więc ta liczba zostanie wypisana. Warunek z > zakończy pętlę wcześniej i pominie wartość równą progowi.
Ćwicz krótkie przykłady z różnymi zakresami, kierunkami i warunkami (np. od 10 do 1, od 0 do 9, tylko parzyste). Ucz się na schemacie: start → warunek → ciało → krok. Na egzaminie najpierw identyfikuj ++/-- i znak nierówności.
info

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

Eksperci podkreślają: "Poprawne jest "od 10 do 1", ponieważ w analizowanej pętli wartość startowa wynosi 10, w każdym obiegu jest zmniejszana o 1 (dekrementacja), a warunek pozwala wykonywać iteracje aż do osiągnięcia 1."

Ź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: Incrementing/Decrementing Operators, https://www.php.net/manual/en/language.operators.increment.php - accessed 2026-03-01

Materiały:

  • Dokumentacja PHP: instrukcje sterujące (pętle)
  • Krótkie zadania praktyczne: przewidywanie wyniku pętli dla różnych warunków i kroków
  • Notatka/ściąga: 'for: start → warunek → ciało → krok' z przykładami

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego