0

Оператор Перейти

Оператор выполняет безусловный адресный переход к другой строке программы

Синтаксис

Оператор Перейти имеет следующий синтаксис:

Перейти ~ИдентификаторМетки;
    //операторы
~ИдентификаторМетки:
    //операторы

А также альтернативный англоязычный синтаксис:

Goto ~Label;
    //operators
~Label:
    //operators

Описание

Оператор Перейти используется для немедленного безусловного перехода к оператору программы, расположенному на другой строке. Для этого целевая строка отмечается специальным символьным идентификатором — меткой. Метка может располагаться как до оператора Перейти (в этом случае будет осуществлен переход назад), так и после него (будет осуществлен переход вперед).

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

На использование оператора Перейти накладываются жесткие ограничения:

  • оператор нельзя использовать для перехода к метке, объявленной за пределами программного модуля. При нарушении этого ограничения синтаксический анализатор выдаст ошибку: «Метка не определена (имя метки)»;
  • оператор нельзя использовать для перехода к метке, объявленной за пределами процедуры или функции. При нарушении этого ограничения синтаксический анализатор выдаст ошибку: «Метка не определена в процедуре (имя метки)»;
  • оператор нельзя использовать для перехода извне к метке, объявленной внутри условных или управляющих операторов, а также оператора управления исключениями. При нарушении этого ограничения синтаксический анализатор выдаст ошибку: «На метку с указанным именем имеется недопустимый переход (имя метки)»;

Эти ограничения связаны с тем, что неумелое использование данного оператора может привести к появлению трудно обнаруживаемых ошибок. Но оператор Перейти можно и нужно использовать в особых случаях, например, для досрочного прекращения цикла.

Пример использования

Пример кода с использованием оператора Перейти

//поиск значения в таблице
Для НомерСтроки = 1 По Таб.ВысотаТаблицы() Цикл
    Для НомерКолонки = 1 По Таб.ШиринаТаблицы() Цикл
        Если Таб.Область(НомерСтроки, НомерКолонки).Текст = СокрЛП(СтрокаДляПоиска) Тогда
            Предупреждение(Шаблон("Значение найдено R[НомерСтроки]C[НомерКолонки]"), 5);
            Перейти ~Выход; 
        КонецЕсли;
    КонецЦикла;
КонецЦикла;

Предупреждение("Значение не найдено!", 5);

~Выход:

Читайте также:

  1. Как правильно использовать оператор Перейти

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *