Безусловный переход

Материал из Энциклопедия о программировании
Перейти к: навигация, поиск

Эту страницу также можно назвать, или альтернативные заголовки страницы:

  • Оператор безусловного перехода
  • goto

Безусловный переход — переход к определённой точке программы, обозначенной обычно номером строки, либо меткой, представленной в строчном или числовом виде, имеющийся в большинстве языков программирования 20-ого века.

Оператор

В большинстве языков программирования оператором безусловного перехода является goto (от англ. go to — «перейти на, перейти к»). В некоторых языках оператор безусловного перехода может иметь другое имя (напр., jmp в языках ассемблера).

История

Безусловный переход был одним из первых операторов и заменял собой ветвления и циклы.

Использование

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

Разрешённое использование

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

  1. Выход из нескольких вложенных друг в друга циклов в языках, где операторы прерывания итерации и всего цикла не позволяют этого сделать. Напр., в PHP операторам break и continue можно передать параметр, указывающий количество вложенных циклов для прерывания, а в том же Pascal так нельзя.
  2. Переход в конец подпрограммы, где помимо самого оператора выхода и возврата значения (обычно return) присутствуют конструкции закрытия различных дескрипторов, в языках, где это (очищать память) надо делать вручную.

Как видно, в обоих случаях допустимого использования безусловный переход делается исключительно вниз (вперёд, далее) по коду программы. Если надо возвращаться назад, то необходимо использовать цикл всегда без исключений.