2. Содержание
• Использование goto и меток
• Почему goto плохо
• Где можно использовать goto
• Примеры
23.05.2019 0:36 Introduction 2
3. Использование goto и меток
goto требует наличия меток для работы. Метка - это
корректный идентификатор Си, завершаемый
двоеточием. Метка должна находиться в той же функции,
что и goto.
Действие оператора перехода состоит в том, что после
его исполнения следующими будут исполняться
операторы программы, идущие в тексте непосредственно
после метки. Для машинных языков инструкция перехода
копирует в регистр процессора, содержащий адрес
следующей выполняемой команды, адрес команды,
помеченной меткой.
23.05.2019 0:36 Introduction 3
6. Почему goto плохо
● чрезмерное его применение приводит к созданию
нечитаемого кода.
● трудно форматировать (он может нарушать
иерархичность выполнения и потому отступы,
призванные отображать структуру программы, не всегда
могут быть выставлены правильно).
● мешает оптимизации компиляторами управляющих
структур.
● передача управления внутрь тела цикла приводит к
пропуску кода инициализации цикла или
первоначальной проверки условия.
6
9. Где можно использовать goto
В некоторых языках нет операторов досрочного
завершения цикла или они относятся только к тому в
котором расположены. Использование goto для выхода из
нескольких вложенных циклов сразу упрощает код
программы, избавляя от необходимости применения
вспомогательных переменных-флагов и условных
операторов.
Если в языке нет средств обработки исключений, то
оператор goto может использоваться для прерывания
«нормального» выполнения кода и перехода к
завершающему коду для освобождения занятой памяти и
прочих финальных действий.
9