KWALIFIKACJA INF3 - CZERWIEC 2016

PYTANIE NR 27.
Ile iteracji będzie miała pętla zapisana w języku PHP, zakładając, że zmienna sterująca nie jest modyfikowana we wnętrzu pętli?

for ($i = 0; $i <= 10; $i+=2) { ............ }
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Pętla startuje od $i=0, wykonuje się, gdy $i <= 10, a po każdym obiegu zwiększa $i o 2. Kolejne wartości to: 0, 2, 4, 6, 8, 10. To daje 6 wykonań ciała pętli (6 iteracji). Warunek <= powoduje, że 10 też jest liczone.

Pełne wyjaśnienie:

W pętli for w PHP typowy przebieg jest następujący: najpierw wykonywana jest inicjalizacja, potem sprawdzany jest warunek; jeśli jest spełniony, wykonywane jest ciało pętli, a na końcu każdej iteracji wykonywany jest krok (modyfikacja licznika).

Dla kodu: for ($i = 0; $i <= 10; $i+=2):

  • Inicjalizacja: $i = 0.
  • Warunek: pętla działa tak długo, jak długo $i jest mniejsze lub równe 10 (operator <=).
  • Krok: po każdej iteracji $i zwiększa się o 2 (czyli 0 → 2 → 4 ...).

Wypiszmy wartości $i, dla których warunek jest spełniony i ciało pętli zostanie wykonane:

  • $i = 0 (0 <= 10) → iteracja 1
  • $i = 2 (2 <= 10) → iteracja 2
  • $i = 4 (4 <= 10) → iteracja 3
  • $i = 6 (6 <= 10) → iteracja 4
  • $i = 8 (8 <= 10) → iteracja 5
  • $i = 10 (10 <= 10) → iteracja 6

Po tej iteracji krok ustawia $i = 12 i następuje ponowne sprawdzenie warunku: 12 <= 10 jest fałszywe, więc pętla kończy działanie. Zatem poprawna odpowiedź to 6.

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

  • 5 – typowy błąd pominięcia wartości 0 lub 10, albo mylenie <= z < (wtedy 10 nie byłoby wliczone).
  • 10 – to błąd wynikający z intuicyjnego skojarzenia "do 10", bez uwzględnienia kroku co 2.

Wskazówka egzaminacyjna: przy takich zadaniach najszybciej działa metoda "wypisz kolejne wartości licznika" albo policz elementy ciągu arytmetycznego, pamiętając o tym, czy granica jest włączona (<=) czy wyłączona (<).

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Najpewniej jest wypisać kolejne wartości zmiennej sterującej: start (inicjalizacja), sprawdzenie warunku, wykonanie, potem krok i znów warunek. Liczysz, ile razy faktycznie wykonało się ciało pętli, a nie ile razy sprawdzono warunek.
Operator <= oznacza "mniejsze lub równe". To znaczy, że pętla wykona się także dla wartości granicznej 10. Gdyby było <, wartość 10 nie zostałaby wliczona.
Bo pętla zaczyna od 0 i obejmuje też 10 (warunek <=). Wartości to: 0, 2, 4, 6, 8, 10. Jest ich sześć, więc ciało pętli wykona się 6 razy.
Zapis $i+=2 zwiększa zmienną $i o 2 po każdej iteracji. To skrót od $i = $i + 2. W efekcie licznik zmienia się co dwa, a nie co jeden.
Tak. Najpierw wykonywana jest inicjalizacja (np. $i=0), potem sprawdzenie warunku. Dopiero gdy warunek jest prawdziwy, wykonywane jest ciało pętli. Dzięki temu łatwo przewidzieć, czy pętla wykona się choć raz.
Jeśli licznik nie jest modyfikowany (brak kroku lub krok nie działa), a warunek pozostaje zawsze prawdziwy, powstaje pętla nieskończona. W tym zadaniu licznik zmienia się przez $i+=2, więc pętla kończy się poprawnie.
Najczęściej myli się < z <= oraz to, czy liczyć wartości graniczne. Pomaga wypisanie pierwszej i ostatniej wartości licznika oraz szybki test: czy granica ma być włączona (≤) czy wyłączona (<).
$i przyjmie wartości parzyste od 0 do 10 włącznie: 0, 2, 4, 6, 8, 10. Po ostatniej iteracji krok ustawi $i=12 i wtedy warunek 12 <= 10 będzie fałszywy.
Zwykle nie, jeśli ciało pętli nie modyfikuje licznika ani nie używa break/return. W tym zadaniu założono brak modyfikacji licznika w środku, więc iteracje wynikają wyłącznie z inicjalizacji, warunku i kroku.
Stosuj schemat: (1) odczytaj start licznika, (2) sprawdź, czy granica jest włączona (<=) czy nie (<), (3) odczytaj krok, (4) wypisz 3–4 pierwsze wartości i od razu widać ciąg oraz ostatnią wartość.
info

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

W praktyce zawodowej kluczowe jest to, że pętla startuje od $i=0, wykonuje się, gdy $i &lt;= 10, a po każdym obiegu zwiększa $i o 2.

Źródła:

  • PHP Manual: for - https://www.php.net/manual/en/control-structures.for.php (dostęp: 2026-02-18)
  • PHP Manual: Comparison Operators (m.in. &lt;=) - https://www.php.net/manual/en/language.operators.comparison.php (dostęp: 2026-02-18)
  • PHP Manual: Arithmetic Operators (m.in. +=) - https://www.php.net/manual/en/language.operators.arithmetic.php (dostęp: 2026-02-18)

Materiały:

  • Dokumentacja PHP: konstrukcje sterujące (pętle)
  • Ćwiczenia z analizą przebiegu pętli i wartości zmiennej sterującej (trace table)
  • Krótkie testy z typowych błędów off-by-one w warunkach &lt; i &lt;=

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego