KWALIFIKACJA INF3 - STYCZEŃ 2015

PYTANIE NR 32.
W języku PHP w instrukcji switch musi występować
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Obowiązkowym elementem jest nagłówek instrukcji w postaci switch(wyrażenie), bo bez wyrażenia nie da się wykonać porównania z wartościami w case.
Instrukcja default jest opcjonalna, liczba case nie jest wymuszona składnią, a break nie musi wystąpić po każdym case (możliwy jest "fall-through").

Pełne wyjaśnienie:

W PHP instrukcja switch służy do wykonania jednego z wielu bloków kodu w zależności od wartości wyrażenia sterującego. Elementem, który musi wystąpić składniowo, jest sam nagłówek konstrukcji, czyli switch(wyrażenie) (w praktyce wraz z blokiem w klamrach). Bez podania wyrażenia nie ma czego porównywać z etykietami case, więc taka instrukcja nie mogłaby działać.

Odpowiedź "instrukcja default." jest niepoprawna, ponieważ default pełni rolę gałęzi wykonywanej wtedy, gdy żaden przypadek nie pasuje, ale nie jest obowiązkowy. Można stworzyć switch bez default, jeśli logika programu tego nie wymaga.

Odpowiedź "przynajmniej dwie instrukcje case." także jest niepoprawna: składnia nie narzuca minimalnej liczby gałęzi. Teoretycznie może wystąpić jedna gałąź case (choć bywa to mało sensowne), a w praktyce liczba przypadków wynika z potrzeb programu, nie z wymagań składniowych.

Odpowiedź "instrukcja break po każdej instrukcji case." jest myląca, bo break jest narzędziem kontrolującym przepływ: zwykle dodaje się go, by zakończyć wykonywanie switch po dopasowaniu. Jednak w PHP dopuszczalne jest celowe przechodzenie do kolejnego przypadku (tzw. fall-through), więc break nie musi stać po każdym case. Ważne na egzaminie: odróżniaj elementy wymagane składniowo od elementów opcjonalnych i zalecanych dla czytelności.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Obowiązkowe jest użycie nagłówka switch(wyrażenie), czyli podanie wyrażenia sterującego, którego wartość będzie porównywana z kolejnymi przypadkami case. Bez wyrażenia nie da się wykonać wyboru gałęzi.
Nie. default jest opcjonalne i działa jak "gałąź domyślna", gdy żaden case nie pasuje. Często jest zalecane (dla kompletności), ale brak default nie jest błędem składniowym.
W PHP w switch działa mechanizm fall-through: jeśli po dopasowanym case nie ma break, wykonanie może przejść do następnego case. Bywa to użyteczne, ale częściej wymaga świadomego zastosowania.
Po wejściu do dopasowanego case kod będzie wykonywany dalej aż do napotkania break, return, throw lub końca switch. To częste źródło błędów, jeśli programista zapomni o break.
Najczęściej myli się elementy "obowiązkowe" z "dobrymi praktykami": uczniowie zaznaczają default lub break jako wymagane. Drugi błąd to nieuwzględnienie fall-through, czyli wpływu braku break na przepływ programu.
Nie ma takiego wymogu składniowego. Liczba case wynika z problemu, który rozwiązujesz. Nawet jeśli jedna gałąź bywa mało praktyczna, nadal nie jest to błąd formalny samej konstrukcji.
switch bywa czytelniejszy, gdy porównujesz jedną wartość (np. typ akcji, status, kod) z wieloma możliwymi wariantami. Przy złożonych warunkach logicznych (wiele zmiennych, zakresy) zwykle lepiej sprawdzają się instrukcje if/elseif.
switch to klasyczna instrukcja sterująca z możliwością fall-through. match (w nowszych PHP) jest wyrażeniem zwracającym wartość i zwykle wymaga pełniejszego pokrycia przypadków. Na egzaminie warto znać oba, ale rozróżniać ich zasady działania.
Podstawowy schemat to: switch(wyrażenie) oraz blok z co najmniej jednym case, a opcjonalnie default. W praktyce najczęściej dodaje się break w gałęziach, aby zakończyć wybór po dopasowaniu.
Czasem tak: jeśli celowo chcesz "nic nie robić" dla wartości spoza listy i obsługujesz to gdzie indziej. Jednak często default pomaga wykrywać nieprzewidziane przypadki (np. logowanie błędu), więc w kodzie produkcyjnym bywa zalecany.
info

Statystycznie 82% uczniów zna prawidłową odpowiedź. średnio łatwe

Źródła:

  • PHP Manual: "switch" - https://www.php.net/manual/en/control-structures.switch.php (dostęp: 2026-02-27)
  • PHP Manual: "break" - https://www.php.net/manual/en/control-structures.break.php (dostęp: 2026-02-27)
  • PHP Manual: "Control Structures" (sekcja dot. składni instrukcji sterujących) - https://www.php.net/manual/en/language.control-structures.php (dostęp: 2026-02-27)

Materiały:

  • Oficjalna dokumentacja PHP: instrukcje sterujące (switch)
  • Ćwiczenia: przykłady switch z i bez break oraz z default
  • Porównanie switch i match w nowszych wersjach PHP (kiedy które stosować)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego