Язык:
Русский
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