Instrukcja blokowa
Z Wikipedii
Instrukcja blokowa - (instrukcja złożona) jako instrukcja strukturalna jest elementem składni języków programowania strukturalnego, wydzielona część kodu źródłowego programu komputerowego, stosowane np. do grupowania sekwencji instrukcji składowych (prostych lub złożonych), ujmując je w nawiazy zdaniowe.
Instrukcja blokowa wyróżniona jest przez odpowiednie symbole składniowe (nawiasy zdaniowe) , np. w językach C, C++, Java symbolami takimi są nawiasy klamrowe { }, w Algolu i Pascalu słowa kluczowe begin
end
.
Instrukcja blokowa jest traktowana na takich samych zasadach jak pojedyncza instrukcja.
Spis treści |
[edytuj] Rodzaje instrukcji blokowych
W różnych językach programowania istnieją dwa rodzaje instrukcji blokowej:
- instrukcja grupująca
- instrukcja blokowa.
[edytuj] Instrukcja grupująca
Z tego typu instrukcją mamy doczynienia w językach takich jak
begin instrukcje end;
DO; instrukcje END;
Instrukcje te grupują fragment kodu, który może być traktowany jak jedna instrukcja (w odniesieniu do instrukcji strukturalnych: warunkowych, pętli czy wyboru). Tego typu instrukcja blokowa jest więc tylko swoistym " nawiasem", nie ograniczającym zakresu deklaracji (np. zmiennych).
[edytuj] Instrukcja blokowa
Ten rodzaj instrukcji jest rozszerzeniem w porównaniu do instrukcji grupującej. Instrukcja ta stanowi rzeczywisty blok z ograniczeniem zakresu zawartych w niej deklaracji (np. zmiennych).
begin deklaracje zmienych lokalnych instrukcje end
{ deklaracje zmienych lokalnych instrukcje }
BEGIN; deklaracje zmienych lokalnych instrukcje END;
Różnicę między oboma rodzajami instrukcji blokowej widać najlepiej na przykładzie języka PL/1, w którym występują obie instrukcje, mając różne możliwości i zastowanie.
[edytuj] Języki strukturalne bez instrukcji blokowej
Wiele jęzków strukturalnych nie zawiera instrukcji blokowej. Do tej grupy należą te języki programowania, w których każda instrukcja sterująca posiada własne słowo kluczowe zamykające instrukcję strukturalną, a także nie przewidziano możliwości deklarowania zmiennych lokalnych w bloku. Do takich języków należą między innymi: Basic, Comal, Visual Basic
Przykład Visual Basic:
IF warunek THEN instrukcje END IF
[edytuj] Rozszerzenia instrukcji blokowych
[edytuj] Algol
Istnieje możliwość zastosowania instrukcji opuszczenia, aby wyjść z instrukcji blokowej:
begin ... exit ... end
[edytuj] Clipper
Postać instrukcji blokowej w języku Clipper:
BEGIN SEQUENCE instrukcje [BREAK [wyrażenie]] instrukcje [RECOVER [USING parametr]] instrukcje END [SEQUENCE]
Rozszerzenie instrukcji blokowej w języku Clipper polega na wprowadzeniu możliwości kontroli wykonania zawartych w niej instrukcji i możliwości ich przerwania (np. w sytuacjach błędów), za pomocą instrukcji opuszczenia BREAK. Instrukcja ta ma rozszerzenie o możliwość podania wyrażenia, które zostanie podstawione pod parametr podany we frazie USING sekcji RECOVER, do której następuje przejście po napotkaniu instrukcji BREAK. Stosowanie instrukcji blokowej w tym języku jako nawiasu spinającego jest zbędne, gdyż składania każdej instrukcji strukturalnej definiuje słowo zamykające.
[edytuj] Przykłady
while(W) I1; // wykonywana dopóki spełniony jest warunek W I2; // wykona się raz - nie objęte pętlą while(W) { I1; // wykonywane dopóki spełniony jest warunek W I2; }
Język Pascal
if(W) then I1; I2; if(W) then begin I1; I2; end;