IPB

> Конструкция begin...end (зарезервированные слова)
Чат
Форум
Загрузка...
 

Язык:
Русский
English

 Конструкция begin...end (зарезервированные слова)


Эта конструкция является составным оператором. Зарезервированные слова begin и end служат операторными скобками.

Синтаксис

 begin
   Оператор;
   Оператор;
   ...
   Оператор;
 end;

Замечания

Когда несколько операторов записаны в таких операторных скобках, они обрабатываются как один оператор.

Пример

 { Составной оператор, используемый внутри оператора if }
 if First < Last then
 begin
   Temp := First;
   First := Last;
   Last := Temp;
 end;

Ада

Синтаксис управляющих конструкций таков, что для записи более, чем одного вложенного оператора не требуется использовать begin-end:

 -- Калька с примера
 if First < Last then
    Temp := First;
    First := Last;
    Last := Temp;
 end if;

Никлаус Вирт впоследствии жалел, что не сделал так с самого начала. Во всех потомках Паскаля эта оплошность была раз и навсегда исправлена. Поэтому begin-end в чистом виде в языке Ада, как правило, используется только для записи тел функций и процедур.

Расширенная версия declare-begin-end может быть использована для объявления типов, функций, задач, пакетов, констант и, конечно же, переменных:

 -- Объявление переменных во внутреннем блоке
 declare
    Cur_Value  : Integer := Integer'First; -- текущее значение
    Prev_Value : Integer := Integer'First; -- прошлое значение
 begin
    for i in Arg'Range loop
       Cur_Value := Arg (i);
       ... -- операции над Cur_Value и Prev_Value
       Prev_Value := Cur_Value;
    end loop;
 end;

Этим оператором можно также обрабатывать исключения:

 begin
    Create (My_File, Out_File, "new.txt");
    ... -- запись в файл
    Close (My_File);
 exception
    when others => Delete (My_File); raise;
       -- запись неудачна, не сохранять файл
 end;

Незначительные отличия в синтаксисе касаются внутреннего синтаксиса списка операторов. Во-первых, он не может быть пустым (а что, если программист отложил на потом, а потом забыл?), там должен быть хотя бы пустой оператор "null;". Во-вторых, Ада - язык терминатистский, а не сепаратистский. Точка с запятой должна оканчивать каждый оператор, в том числе последний в списке.

См. также

Лекция №1.3: Начальные сведения о программах на языке Pascal

 
 К началу страницы 
Тэги: begin
 

Код для вставки: :: :: :: ГОСТ ::
Поделиться: //
 



-
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"