KWALIFIKACJA INF2 + INF3 - CZERWIEC 2012

PYTANIE NR 10.
Która z wymienionych instrukcji języka C++ powoduje opuszczenie funkcji i w razie potrzeby ustawienie wartości zwracanej?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Instrukcja return kończy wykonywanie bieżącej funkcji i opcjonalnie przekazuje (ustawia) wartość zwracaną do miejsca wywołania. break przerywa pętlę/switch, continue przechodzi do następnej iteracji pętli, a goto tylko skacze do etykiety.

Pełne wyjaśnienie:

W C++ jedyną instrukcją z podanych, która opuszcza funkcję i jednocześnie (gdy funkcja nie jest typu void) może ustawić wartość zwracaną, jest return.

Dlaczego "return" jest poprawne?
Instrukcja return natychmiast kończy wykonywanie funkcji. Jeżeli funkcja ma typ zwracany (np. int, bool, std::string), to po słowie kluczowym można podać wyrażenie, którego wartość staje się wynikiem funkcji (np. zwrot kodu błędu, obliczonej wartości, informacji o powodzeniu).

Dlaczego pozostałe odpowiedzi są niepoprawne?

  • break przerywa najbliższą pętlę (for/while/do-while) albo instrukcję switch. Nie służy do wychodzenia z funkcji i nie ustawia wartości zwracanej funkcji.
  • continue nie kończy pętli, tylko pomija resztę bieżącej iteracji i przechodzi do kolejnej iteracji. Działa wyłącznie w kontekście pętli, nie kończy funkcji.
  • goto wykonuje skok do etykiety w tej samej funkcji. Zmienia miejsce kontynuacji wykonywania kodu, ale nie jest mechanizmem zwrotu wartości i standardowo nie jest używany do "opuszczania funkcji" z ustawieniem wyniku.

Wskazówka egzaminacyjna: jeśli w treści pojawia się jednocześnie "opuszczenie funkcji" i "wartość zwracana", niemal zawsze chodzi o return. Dla pętli kluczowe są zwykle break (przerwanie) i continue (następna iteracja).

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Instrukcja return kończy działanie bieżącej funkcji. Jeśli funkcja ma typ inny niż void, to return może zwrócić wartość do miejsca wywołania (np. liczbę, wartość logiczną lub obiekt).
W funkcji o określonym typie zwracanym (np. int) używa się return wyrażenie;. Wyrażenie musi być zgodne z typem zwracanym lub możliwe do niejawnej konwersji. Wtedy wywołujący otrzymuje tę wartość.
break działa tylko wewnątrz pętli lub switch i przerywa ten najbliższy blok sterujący. Nie jest mechanizmem kończenia funkcji, więc po break program wraca do kodu po pętli/switch, a nie do miejsca wywołania funkcji.
continue przerywa bieżącą iterację pętli i przechodzi do następnej. Nie kończy pętli i nie kończy funkcji. To częsty błąd: mylenie "pominięcia reszty iteracji" z "zakończeniem wykonywania".
Zwykle nie. goto skacze do etykiety w tej samej funkcji i nie zwraca wartości do wywołującego. Teoretycznie można skoczyć do miejsca, gdzie później jest return, ale to nadal return kończy funkcję i zwraca wartość.
return; stosuje się w funkcjach typu void, aby zakończyć je wcześniej (np. po wykryciu błędnych danych). W funkcjach zwracających wartość zwykle trzeba podać wyrażenie, aby wynik był jednoznaczny.
return kończy funkcję i wraca do miejsca wywołania (opcjonalnie z wartością). break przerywa tylko pętlę lub switch i wykonanie idzie dalej w tej samej funkcji. Różnica dotyczy więc "zasięgu" działania.
Obie instrukcje mogą "zatrzymać" wykonywanie pewnego fragmentu kodu, więc intuicyjnie wydają się podobne. W praktyce jednak break jest lokalne dla pętli/switch, a return zawsze wychodzi z funkcji i może przekazać wynik.
Jeżeli w treści pojawia się "opuszczenie funkcji", "zwracanie wartości", "wynik funkcji" lub "wraca do miejsca wywołania", to typowym rozwiązaniem jest return. Gdy mowa o pętli, częściej pasują break lub continue.
Tak: return kończy funkcję main i zwraca kod zakończenia programu do systemu operacyjnego. Najczęściej spotkasz return 0; jako sygnał poprawnego zakończenia działania programu.
info

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

W praktyce zawodowej kluczowe jest to, że instrukcja return kończy wykonywanie bieżącej funkcji i opcjonalnie przekazuje (ustawia) wartość zwracaną do miejsca wywołania.

Źródła:

  • cppreference.com: "return statement (C++)" https://en.cppreference.com/w/cpp/language/return (dostęp: 2026-02-27)
  • cppreference.com: "break statement (C++)" https://en.cppreference.com/w/cpp/language/break (dostęp: 2026-02-27)
  • cppreference.com: "continue statement (C++)" https://en.cppreference.com/w/cpp/language/continue (dostęp: 2026-02-27)

Materiały:

  • Dokumentacja cppreference dotycząca instrukcji sterujących w C++
  • Podręcznik do podstaw C++ (rozdziały: funkcje, instrukcje skoku)
  • Ćwiczenia z analizy krótkich fragmentów kodu i przewidywania przepływu wykonania

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego