Операторы, как было уже сказано в параграфе 1.1, представляют собой действия, выполняемые программой. ТП определяет набор операторов, которого вполне достаточно для реализации любых конструкций языков программирования.

Оператор::=[метка ":"] [(простой_оператор | структурный_оператор )]

Перед каждым оператором может находится метка, используемая для перехода в эту точку программы из другой точки с использование оператора перехода.

Простой_оператор::=оператор_присваивания |

оператор процедуры |

оператор перехода.

Оператор присваивания и оператор вызова процедуры были подробно разобраны в параграфе 1.3.3.

Оператор перехода позволяет передать управление оператору, которому предшествует метка. Любая метка, используемая в блоке, должна быть в этом блоке и объявлена. Для этого требуется воспользоваться разделом объявления меток (см. параграф 1.3.3).

Раздел_объявления_меток:= "LABEL" Метка {"," Метка}";".

Оператор_перехода::= "goto" метка.

Например:

label xxx1,12;

var x:integer;

begin

xxx1: x:=7;

goto 12;

12:

x:=x+1;

goto xxx1;

end.

Не допускаются переходы из одного блока в другой, вне зависимости от его уровня вложенности.

Оператор goto позволяет легко перемещаться по программе, однако злоупотребление им приводит к нежелательным результатам. Применение goto ухудшает читабельность программы, создает значительные трудности при попытках анализа ее структуры, затрудняет отладку и тестирование, является источником трудноуловимых ошибок. В разделах математики, посвященных программированию, доказывается, что ЛЮБАЯ программа может быть создана без использования оператора goto. Применяйте goto только в тех случаях, когда с его помощью можно значительно сократить размер программы.

Следующая страница ->

Последнее изменение: Вторник 1 Март 2011, 16:01