Instrukcja blokowa – Wikipedia, wolna encyklopedia

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 nawiasy 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.

Rodzaje instrukcji blokowych

[edytuj | edytuj kod]

W różnych językach programowania istnieją dwa rodzaje instrukcji blokowej:

  • instrukcja grupująca
  • instrukcja blokowa.

Instrukcja grupująca

[edytuj | edytuj kod]

Z tego typu instrukcją mamy do czynienia 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).

Instrukcja blokowa

[edytuj | edytuj kod]

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 zmiennych lokalnych    instrukcje  end 
 {    deklaracje zmiennych lokalnych    instrukcje  } 
 BEGIN;    deklaracje zmiennych 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 zastosowanie.

Języki strukturalne bez instrukcji blokowej

[edytuj | edytuj kod]

Wiele językó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 

Rozszerzenia instrukcji blokowych

[edytuj | edytuj kod]

Istnieje możliwość zastosowania instrukcji opuszczenia, aby wyjść z instrukcji blokowej:

 begin    ...    exit    ...  end 

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.

Przykłady

[edytuj | edytuj kod]

Język C/C++

   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; 

Bibliografia

[edytuj | edytuj kod]