KWALIFIKACJA INF3 - STYCZEŃ 2019

PYTANIE NR 36.
Wynikiem działania pętli for w przedstawionym kodzie PHP jest wyświetlenie liczb
Ilustracja przedstawia fragment kodu PHP, który jest częścią pytania egzaminacyjnego związanego z kwalifikacją zawodową
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W pętli for wynik zależy od tego, ile razy spełniony jest warunek oraz jak w każdej iteracji zmienia się licznik.
Jeżeli analiza inicjalizacji, warunku i kroku pętli prowadzi do dwóch wypisań wartości "1", to poprawnym wynikiem jest "1 1". Kluczowe jest śledzenie przebiegu krok po kroku.

Pełne wyjaśnienie:

W PHP pętla for składa się z trzech elementów: inicjalizacji licznika, warunku kontynuacji oraz kroku (modyfikacji licznika). Wykonanie przebiega zawsze w tej kolejności:

  • inicjalizacja (jednorazowo przed startem),
  • sprawdzenie warunku (przed każdą iteracją),
  • wykonanie instrukcji w ciele pętli (np. wypisanie wartości),
  • krok pętli (zmiana licznika), po czym ponownie sprawdzenie warunku.

Poprawna odpowiedź "1 1" oznacza, że ciało pętli doprowadziło do dwóch wypisań i w obu przypadkach wypisywana była wartość 1 (np. stała, wynik porównania rzutowany na 1/0, albo wartość zmiennej, która przyjmowała 1 w obu iteracjach). Aby to ocenić, trzeba prześledzić kod wprost: ustalić wartość początkową licznika, sprawdzić, kiedy warunek jest spełniony i jak krok pętli wpływa na kolejne sprawdzenia.

Odpowiedzi z wystąpieniem "0" (np. "1 0", "1 0 1", "1 0 1 0") zwykle wynikają z błędnego założenia, że pętla naprzemiennie wypisuje 1 i 0 albo że licznik zmienia się inaczej niż w rzeczywistości. Częsta pułapka to mylenie operatorów porównania (< vs <=) oraz momentu zadziałania inkrementacji/dekrementacji (czy wartość zmienia się przed czy po użyciu). Inną typową pomyłką jest nieuwzględnienie, że warunek jest sprawdzany przed wejściem do iteracji, więc jedna zmiana w warunku może zmienić liczbę wypisań o 1.

Najbezpieczniejsza metoda egzaminacyjna: rozpisać tabelkę "wartość licznika → warunek → co wypisano → nowa wartość licznika" i zakończyć, gdy warunek przestanie być spełniony. To minimalizuje błędy intuicyjne i pozwala jednoznacznie wskazać wynik.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Pętla for wykonuje: inicjalizację (raz), potem wielokrotnie sprawdza warunek, wykonuje ciało i na końcu każdej iteracji robi krok (np. ++). Jeśli warunek jest fałszywy, pętla kończy się i nic więcej nie wypisuje.
To cecha konstrukcji for: najpierw decyduje, czy wejść do ciała pętli, a dopiero potem wykonuje instrukcje. Dzięki temu łatwo kontrolować liczbę przebiegów, ale łatwo też o błąd "o jeden" przy złym operatorze porównania.
To pomyłka, w której pętla wykona się o 1 raz za dużo albo o 1 raz za mało. Najczęściej wynika z użycia <= zamiast < (lub odwrotnie) albo z błędnego założenia, kiedy licznik zmienia wartość.
Oba zwiększają wartość o 1, ale różnią się tym, kiedy zwracają wartość w wyrażeniu: postinkrementacja (i++) zwraca starą wartość, a preinkrementacja (++i) nową. W kroku pętli zwykle nie ma to znaczenia, ale w echo/warunku już tak.
Zrób prostą tabelę: (1) wartość licznika na początku, (2) czy warunek jest prawdziwy, (3) co wypisuje echo, (4) jak zmienia się licznik w kroku. Powtarzaj aż warunek będzie fałszywy. To ogranicza zgadywanie.
Nie. echo wypisuje dokładnie to, co mu podasz. Spacje, separatory i znaki nowej linii trzeba dodać samodzielnie (np. " ", "\n", "<br>"). W zadaniach egzaminacyjnych to wpływa na postać wyniku.
"0" może się pojawić, gdy wypisywana jest zmienna licznika przyjmująca 0, gdy wypisywany jest wynik działań dających 0, albo gdy w PHP wypisywany jest wynik porównania rzutowany do liczby (fałsz bywa interpretowany jako 0). Trzeba sprawdzić, co jest w echo.
Najczęściej myli się: operator porównania (< vs <=), moment inkrementacji (pre/post), pomija nawiasy lub kolejność działań w warunku oraz zakłada, że pętla wykona się "zawsze kilka razy". Pomaga analiza linijka po linijce.
Bo warunek jest sprawdzany przed wejściem do iteracji. Jeśli już na starcie jest fałszywy, pętla nie wykona się ani razu. Wynik bywa też krótszy, gdy krok zmienia licznik szybciej (np. +2), przez co szybciej przestaje spełniać warunek.
Ćwicz śledzenie wykonania kodu: wypisz kolejne wartości zmiennych i wynik echo. Przećwicz różne warunki i kroki (++, --, +2). Dodatkowo powtórz zasady typów w PHP (true/false, 1/0), bo czasem wynik zależy od konwersji.
info

To pytanie poprawnie rozwiązuje 47% zdających egzamin. trudne

Specjaliści zwracają uwagę: "Kluczowe jest śledzenie przebiegu krok po kroku."

Źródła:

  • PHP Manual: for - https://www.php.net/manual/en/control-structures.for.php (dostęp: 2026-03-01)
  • PHP Manual: echo - https://www.php.net/manual/en/function.echo.php (dostęp: 2026-03-01)
  • PHP Manual: Incrementing/Decrementing Operators - https://www.php.net/manual/en/language.operators.increment.php (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja PHP: konstrukcja for
  • Dokumentacja PHP: operatory inkrementacji i dekrementacji
  • Ćwiczenia: ręczne śledzenie (trace) wykonania pętli na kartce/krokowo

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego