Instrukcja opuszczenia
Instrukcja opuszczenia (instrukcja zaniechania, instrukcja wyjścia z bloku) – instrukcja w danym języku programowania powodująca wyjście z określonej instrukcji strukturalnej.
Działanie
edytujW programowaniu strukturalnym tworząc określony algorytm programista korzysta z dostępnych w języku programowania instrukcji strukturalnych i sterujących. Są to między innymi:
Czasem zachodzi potrzeba opuszczenia bloku wykonywanych instrukcji zawartych w jednej z ww. instrukcji strukturalnych. Można tego dokonać:
- instrukcją skoku,
- instrukcją opuszczenia.
W związku z szeroką krytyką stosowania instrukcji skoku, wprowadzono specjale instrukcje pozwalające na opuszczenie określonych bloków programów.
Działanie instrukcji opuszczenia ilustruje poniższy przykład i jego analogiczny odpowiednik z użyciem instrukcji skoku. Należy jednak pamiętać, że w konkretnych realizacjach określonego języka programowania działanie kodów źródłowych z instrukcją opuszczenia lub skoku mogą się różnić.
instrukcja opuszczenia | instrukcja skoku |
---|---|
while (warunek) { ... if (warunek2) break; ... } |
while (warunek) { ... if (warunek2) goto lab_end; ... } lab_end: ... |
W niektórych językach programowania wariantowo dodano pewne opcje dodatkowe rozszerzające możliwości tej instrukcji:
- dodanie możliwości opuszczenia określonej instrukcji strukturalnej w całej zagnieżdżonej hierarchii,
- dodanie możliwości określenia warunku opuszczenia bez konieczności stosowania instrukcji warunkowej,
- dodanie możliwości przekazania wartości celem obsługi błędów lub sytuacji wyjątkowych.
Przykłady
edytujexit [when warunek]
exit
przedmiotowa instrukcja dotyczy instrukcji blokowej begin…end, jeżeli jest ona instrukcją podlegającą przetwarzaniu w ramach instrukcji pętli to nastąpi opuszczenie pętli, ale można ją też stosować poza pętlą w instrukcji blokowej.
break;
przedmiotowa instrukcja dotyczy instrukcji pętli while(warunek), do … while (warunek), for(…) oraz instrukcji switch(…)
EXIT
dotyczy pętli FOR i DO WHILE,
BREAK [wartość]
dotyczy instrukcji blokowej BEGIN SEQUENCE … END SEQUENCE
LEAVE
break
Makroasembler i program SALUT
edytuj$LEAVE warunek
LEAVE [etykieta];
jest to rozszerzenie w stosunku do instrukcji w większości języków programowania, w których instrukcja opuszczenia pozwala na wyjście tylko z bieżącej pętli, jeżeli pętla bieżąca była zagnieżdżona w innej pętli to zewnętrzna pętla będzie wykonywana dalej, w PL/1 można wskazać w całej strukturze zagnieżdżonych pętli z której konkretnie instrukcji ma nastąpić opuszczenie, w braku etykiety zostanie opuszczona bieżąca instrukcja.
! – odcięcie fail – zawodzenie
Turbo Pascal, Borland Pascal, Object Pascal
edytujbreak;
w standardowym języku Pascal nie istniała instrukcja opuszczenia, w implemenatacji Turbo/Borland Pascal wprowadzono standardową procedurę modułu System (dostępnego w każdym programie), umożliwiającą opuszczenie instrukcji pętli while warunek do instrukcja; repeat instrukcje until warunek; for … do instrukcja
Exit For Exit Do