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

W 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ć:

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 opuszczeniainstrukcja 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

Ada

 exit [when warunek]

ALGOL

 exit

przedmiotowa instrukcja dotyczy instrukcji blokowej beginend, 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.

C, C++, C++/CLI, C#, Java

 break;

przedmiotowa instrukcja dotyczy instrukcji pętli while(warunek), dowhile (warunek), for(…) oraz instrukcji switch(…)

Clipper

 EXIT

dotyczy pętli FOR i DO WHILE,

 BREAK [wartość]

dotyczy instrukcji blokowej BEGIN SEQUENCEEND SEQUENCE

Forth

  LEAVE

Icon, Python

 break

Makroasembler i program SALUT

 $LEAVE warunek

PL/1

 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.

Prolog

 ! – odcięcie
 fail – zawodzenie

Turbo Pascal, Borland Pascal, Object Pascal

 break;

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; fordo instrukcja

Visual Basic

 Exit For
 Exit Do

Zobacz też