KWALIFIKACJA INF2 + INF3 - STYCZEŃ 2008

PYTANIE NR 7.
W języku programowania C/C++ do organizacji pętli stosuje się instrukcję
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
do...while jest instrukcją iteracyjną w C/C++: wykonuje blok co najmniej raz, a następnie powtarza go, dopóki warunek w while jest spełniony.
Pozostałe opcje nie tworzą pętli: switch wybiera gałąź, if...else warunkuje wykonanie, a break przerywa działanie pętli lub switcha.

Pełne wyjaśnienie:

W C i C++ do "organizacji pętli", czyli do wielokrotnego wykonywania fragmentu kodu (iteracji), służą instrukcje iteracyjne: for, while oraz do...while. W tym zestawie odpowiedzi jedyną konstrukcją będącą pętlą jest do...while, dlatego to ona jest poprawna.

Dlaczego do...while jest pętlą?
Konstrukcja do...while ma tzw. warunek sprawdzany na końcu: najpierw wykonuje ciało pętli, a dopiero potem sprawdza warunek w części while. Skutkiem jest to, że ciało pętli wykona się co najmniej raz, nawet jeśli warunek od początku byłby fałszywy. To jest typowe narzędzie np. do ponawiania wczytywania danych aż do uzyskania poprawnej wartości.

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

  • switch – to instrukcja wyboru (selekcji). Pozwala wybrać jedną z wielu ścieżek na podstawie wartości wyrażenia, ale nie powoduje automatycznego powtarzania kodu.
  • if...else – to instrukcja warunkowa. Wykonuje jeden z dwóch (lub więcej, przy else if) bloków w zależności od warunku, jednak również nie realizuje iteracji.
  • break – to instrukcja sterowania przepływem, która przerywa wykonywanie najbliższej pętli lub instrukcji switch. Jest używana wewnątrz pętli, ale sama pętli nie "organizuje" i nie jest konstrukcją iteracyjną.

Wskazówka egzaminacyjna: gdy w odpowiedziach pojawiają się mieszane typy instrukcji (pętla, warunek, wybór, przerwanie), warto przypisać je do kategorii: iteracja (for/while/do...while), selekcja (if/switch) oraz skoki/przerwania (break/continue/return). To szybko eliminuje mylące opcje.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Pętla do...while to instrukcja iteracyjna, która wykonuje blok kodu, a następnie sprawdza warunek kontynuacji na końcu. Dzięki temu ciało pętli wykona się zawsze co najmniej raz, nawet jeśli warunek później okaże się fałszywy.
Bo w do...while sprawdzenie warunku jest na końcu konstrukcji. Najpierw uruchamia się blok po słowie do, a dopiero potem oceniany jest warunek w części while. To odróżnia ją od pętli while z warunkiem na początku.
while sprawdza warunek przed wejściem do pętli, więc może wykonać ciało zero razy. do...while sprawdza warunek po wykonaniu bloku, więc wykona ciało co najmniej raz. W praktyce do...while bywa używana przy walidacji danych wejściowych.
Nie. switch to instrukcja wyboru (selekcji), która wybiera jedną z gałęzi na podstawie wartości wyrażenia. Nie powtarza automatycznie kodu. Pętle w C/C++ to m.in. for, while i do...while.
Nie. if...else służy do warunkowego wykonania kodu (wykonaj, jeśli warunek jest prawdziwy, w przeciwnym razie wykonaj inny blok). Aby uzyskać powtarzanie, trzeba użyć instrukcji iteracyjnej (np. for/while/do...while) albo rekurencji.
break natychmiast przerywa wykonywanie najbliższej pętli (w tym do...while) i przechodzi do instrukcji po pętli. To mechanizm wcześniejszego wyjścia, gdy pojawi się warunek "awaryjny" lub znaleziono wynik. Sam break nie jest jednak rodzajem pętli.
Gdy logika wymaga co najmniej jednego wykonania bloku, np. wyświetlenia menu i dopiero potem pytania o wybór, albo wczytywania danych do momentu poprawnej wartości. Wtedy do...while bywa czytelniejsze niż while z duplikacją kodu.
Najczęściej myli się instrukcje wyboru (if, switch) z iteracją, bo wszystkie "sterują" przepływem programu. Drugi błąd to uznanie break za "typ pętli", ponieważ często występuje w pętlach. Pomaga zapamiętać kategorie: iteracja, selekcja, przerwanie.
Szukaj konstrukcji, która z definicji oznacza powtarzanie: for, while, do...while. Instrukcje typu if...else lub switch nie powtarzają kodu, a break i continue tylko wpływają na przebieg już istniejącej pętli.
Przećwicz krótkie programy z for, while i do...while: zliczanie, wczytywanie danych, iterację po tablicy. Następnie dopisz przypadki z break i continue oraz porównaj, kiedy pętla wykona się 0 razy, a kiedy co najmniej 1 raz.
info

Około 79% zdających odpowiada poprawnie na to pytanie. średnio łatwe

Źródła:

  • cppreference.com, "do-while loop" (C++ reference) - https://en.cppreference.com/w/cpp/language/do_while (dostęp: 2026-02-18)
  • cppreference.com, "Iteration statements" (C++ reference) - https://en.cppreference.com/w/cpp/language/iteration (dostęp: 2026-02-18)
  • GNU C Library / GCC documentation (ogólne odniesienie do składni C) – "C Language: Statements" - https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html (dostęp: 2026-02-18)

Materiały:

  • Dokumentacja języka C – rozdział o instrukcjach iteracyjnych
  • Dokumentacja języka C++ – rozdział o iteration statements
  • Materiały dydaktyczne o sterowaniu przepływem (if/switch/pętle/break/continue)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego