Spec-Zone.ru › Ada 2005
Справочник по Ada 2005

5.8 Операторы Goto

Оператор goto_statement задаёт явное передачу управления от этого оператора statement к целевому оператору с заданным меткой.

Синтаксис

goto_statement ::= goto label_name;

Правила разрешения имён

Имя label_name должно соответствовать метке; оператор statement с этой меткой является целевым оператором.

Правила корректности

Вложенная последовательность операторов sequence_of_statements, содержащая целевой оператор, должна также содержать оператор goto_statement. Кроме того, если оператор goto_statement находится внутри оператора accept_statement или тела, то целевой оператор не должен находиться за пределами этого вложенного блока.

Динамическая семантика

Выполнение оператора goto_statement передаёт управление целевому оператору, завершая выполнение любого составного оператора compound_statement, который содержит оператор goto_statement, но не содержит целевой оператор.
ПРИМЕЧАНИЯ
9 Приведённые выше правила позволяют передавать управление оператору вложенной последовательности операторов sequence_of_statements, но не наоборот. Аналогично, они запрещают передачи управления, такие как между альтернативами оператора case_statement, if_statement или select_statement; между обработчиками исключений; или из обработчика исключения вложенной последовательности операторов handled_sequence_of_statements обратно в его последовательность операторов sequence_of_statements.

Примеры

Пример цикла, содержащего оператор goto:
<<Sort>>
for I in 1 .. N-1 loop
if A(I) > A(I+1) then
Exchange(A(I), A(I+1));
goto Sort;
end if;
end loop;


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API