KWALIFIKACJA INF2 + INF3 - STYCZEŃ 2015

PYTANIE NR 19.
Instrukcja while (n<100) w języku C++ jest instrukcją, która
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
while (n<100) to pętla z warunkiem sprawdzanym przed wykonaniem ciała pętli. Jeśli warunek jest fałszywy na starcie, pętla nie wykona się ani razu. Liczba iteracji nie jest "z definicji" równa 99 ani 100 – zależy od wartości początkowej i zmian n w pętli.

Pełne wyjaśnienie:

Instrukcja while (n<100) w C++ jest pętlą, w której warunek kontynuacji jest sprawdzany na początku, czyli przed każdym wejściem do kolejnej iteracji. Oznacza to, że program najpierw ocenia wyrażenie logiczne n<100, a dopiero gdy jest ono prawdziwe, wykonuje instrukcje znajdujące się w ciele pętli.

Dlatego odpowiedź "sprawdza warunek na początku pętli." jest poprawna: to cecha pętli while (tzw. pętla z warunkiem wstępnym).

Dlaczego pozostałe odpowiedzi są niepoprawne?

  • "sprawdza warunek na końcu pętli." – to opisuje konstrukcję do ... while, gdzie ciało wykona się co najmniej raz, a dopiero potem sprawdzany jest warunek.
  • "wykona się 100 razy." – sama postać warunku n<100 nie przesądza liczby iteracji. Pętla może wykonać się 0 razy (gdy n jest już ≥ 100), może wykonać się wiele razy (gdy n rośnie), a nawet może nie zakończyć się nigdy (jeśli n nie jest zwiększane lub jest zmniejszane).
  • "wykona się 99 razy." – to również błędne uogólnienie. 99 iteracji byłoby prawdą tylko w szczególnym przypadku, np. gdy n startuje od 1 i w każdej iteracji rośnie dokładnie o 1, a warunek pozostaje n<100. Pytanie nie podaje takich założeń.

Wskazówka egzaminacyjna: jeśli w odpowiedziach pojawiają się konkretne liczby iteracji, a w treści nie ma wartości początkowej zmiennej ani informacji o jej modyfikacji, zwykle oznacza to, że poprawna odpowiedź dotyczy miejsca sprawdzania warunku, a nie liczby powtórzeń.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
To znaczy, że wyrażenie logiczne w nawiasie (np. n<100) jest oceniane przed wykonaniem ciała pętli. Jeśli warunek jest fałszywy już na starcie, pętla nie wykona się ani razu.
Liczba iteracji zależy od wartości początkowej n i od tego, jak (i czy) n zmienia się w pętli. Bez informacji o starcie i modyfikacji nie da się ustalić stałej liczby powtórzeń.
while sprawdza warunek przed wejściem do iteracji, więc może wykonać się 0 razy. do-while wykonuje ciało najpierw, a warunek sprawdza na końcu, więc wykona się co najmniej 1 raz.
Wtedy, gdy warunek jest fałszywy już przy pierwszym sprawdzeniu. Dla while (n<100) stanie się tak np. gdy n ma wartość 100 lub większą przed pętlą.
Patrz na konstrukcję: w while (warunek) warunek jest na początku. W do { ... } while (warunek); warunek jest na końcu. To kluczowe w pytaniach o "co najmniej jedną iterację".
Nie. Warunek jest sprawdzany przed każdą iteracją (czyli wielokrotnie), aż stanie się fałszywy. Dzięki temu pętla może zakończyć się w różnych momentach zależnie od danych i zmian zmiennych sterujących.
Typowe błędy to: zakładanie, że pętla wykona się zawsze 99/100 razy, mylenie z do-while oraz pomijanie przypadku, że pętla może się nie wykonać wcale. Pomaga analiza wartości startowej i aktualizacji n.
Trzeba jawnie ustalić start i krok, np. z licznikiem: ustaw licznik na 0, w każdej iteracji zwiększaj o 1 i kończ, gdy osiągnie 100. Sama postać n<100 bez inicjalizacji i inkrementacji nie gwarantuje 100 iteracji.
Jeśli warunek długo pozostaje prawdziwy, bo zmienna sterująca nie zmienia się w kierunku jego zanegowania (np. n nie rośnie przy n<100), pętla nie dojdzie do momentu zakończenia. To częsty błąd logiczny w kodzie.
Ćwicz rozpoznawanie typu pętli (while vs do-while), analizę warunku wejścia oraz przypadków brzegowych (0 iteracji, 1 iteracja, wiele iteracji). Rozwiązuj krótkie przykłady z różnymi wartościami startowymi i aktualizacjami zmiennych.
info

To pytanie poprawnie rozwiązuje 79% zdających egzamin. średnio łatwe

Specjaliści zwracają uwagę: "while (n&lt;100) to pętla z warunkiem sprawdzanym przed wykonaniem ciała pętli."

Źródła:

  • cppreference.com: "while loop" (C++), https://en.cppreference.com/w/cpp/language/while - accessed 2026-03-02
  • cplusplus.com: "while loop" (C++), https://cplusplus.com/doc/tutorial/control/ - accessed 2026-03-02
  • ISO/IEC 14882:2020(E) "Programming languages — C++", section on iteration statements (while/do-while) (źródło normatywne)

Materiały:

  • Dokumentacja referencyjna C++ (sekcja o instrukcji while)
  • Podręcznik do podstaw programowania strukturalnego (pętle i warunki)
  • Ćwiczenia: porównanie while vs do-while na przykładach z różnymi wartościami początkowymi

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego