Goto: различия между версиями

[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
м заменил две ссылки на страницы разрешения неоднозначностей прямыми ссылками на соотв. статьи
Строка 1:
'''GOTO''' ({{lang-en|go to}} — «перейти к») — в некоторых [[язык программирования|языках программирования]] — оператор безусловного перехода (перехода к определённой точке программы, обозначенной номером строки либо меткой). В более широком смысле, под «GOTO» подразумевают любой такой оператор, даже если в рассматриваемом языке он называется по-другому. В [[компиляцияКомпиляция (программирование)|компилируемых]] языках GOTO можно рассматривать как основную операцию по передаче управления из одной части программы в другую, поскольку [[компилятор]] переводит все остальные операторы перехода в форму, аналогичную GOTO.
 
== Функциональность ==
Строка 46:
 
=== Выход из нескольких вложенных циклов сразу ===
Обычно считается, что в языках, где операторы досрочного завершения цикла (такие, как <code>break</code> и <code>continue</code> в Си) могут относиться только к тому из [[цикл (программирование)|вложенных циклов]], в котором они расположены, использование <code>goto</code> допустимо, чтобы выйти из нескольких вложенных циклов сразу. Здесь GOTO значительно упрощает программу, избавляя от необходимости создания вспомогательных [[переменнаяПеременная (программирование)|переменных]]-флагов и [[условная инструкция|условных операторов]] либо вспомогательных функций.
 
Другие варианты решения этой проблемы — помещение вложенных циклов в отдельную процедуру и использование команды досрочного выхода из процедуры, а в языках с поддержкой [[обработка исключений|исключений]] — генерацию исключения, обработчик которого располагается за пределами циклов. Однако подобные решения могут снижать производительность, в особенности если этот участок кода вызывается многократно (поскольку и вызовы процедур, и операторы работы с исключениями транслируются далеко не в одну машинную инструкцию).