Instrukcja opuszczenia

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

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[edytuj | edytuj kod]

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 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[edytuj | edytuj kod]

Ada[edytuj | edytuj kod]

 exit [when warunek]

Algol[edytuj | edytuj kod]

 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[edytuj | edytuj kod]

 break;

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

Clipper[edytuj | edytuj kod]

 EXIT

dotyczy pętli FOR i DO WHILE,

 BREAK [wartość]

dotyczy instrukcji blokowej BEGIN SEQUENCEEND SEQUENCE

Forth[edytuj | edytuj kod]

  LEAVE

Icon[edytuj | edytuj kod]

 break

Makroasembler i program SALUT[edytuj | edytuj kod]

 $LEAVE warunek

PL/1[edytuj | edytuj kod]

 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[edytuj | edytuj kod]

 ! – odcięcie
 fail – zawodzenie

Turbo Pascal, Borland Pascal, Object Pascal[edytuj | edytuj kod]

 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[edytuj | edytuj kod]

 Exit For
 Exit Do

Zobacz też[edytuj | edytuj kod]