Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
тема 6.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
235.63 Кб
Скачать
  1. Оператор безусловного перехода

Оператор goto имеет формат: goto метка. В теле той же функции должна присутствовать ровно одна конструкция вида: метка: оператор.

Оператор goto передает управление на помеченный оператор. Метка — это обыч­ный идентификатор, областью видимости которого является функция, в теле ко­торой он задан.

Использование оператора безусловного перехода оправдано в двух случаях, если принудительный выход вниз по тексту программы из нескольких вложенных циклов или переключателей или переход из нескольких мест функции в одно (например, если перед выходом из функции всегда необходимо выполнять какие-либо действия).

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

Пример:

Оператор выбора.

Структура множественного выбора (switch) применяется для того чтобы в зависимости от конкретных значений исходных данных обеспечить выполнение множества разных составных операторов. Структурная схема оператора приведена на рис. 3. Формат оператора:

Рис.3 Структурная схема оператора выбора

Оператор switch позволяет определить программисту действие из списка возможных вариантов, т.е. если значение выражения совпадает со значением константное_выражение_1, то выполняется составной оператор_1, если со значением константное_выражение_2, то выполняется составной оператор_2 и т.д. Если совпадения не произошло, выполняется составной_оператор_по_умолчанию, расположенный после слова default. Выполнение не может переходить на следующий раздел switch.

Пример (программа реализует простейший калькулятор на 4 действия):

Оператор switch может содержать любое количество разделов switch, а каждый раздел может иметь одну или несколько меток case. Однако две метки case не могут содержать одно и то же постоянное значение. Выполнение списка операторов в выбранном разделе switch начинается с первого оператора и продолжается по списку, обычно до достижения оператора перехода, такого как break, goto case, return или throw (оператор break выполняет выход из самого внутреннего из объемлющих его операторов switch; оператор goto выполняет переход на указанную после него метку, обычно это метка case одной из нижележащих ветвей оператора switch ; оператор return выполняет выход из функции, в теле которой он записан). В этой точке управление передаётся за пределы оператора switch или к другой метке case. Не допускается, чтобы выполнение, начавшись в одном разделе, продолжалось в следующем.

Вспомогательные операторы.

  1. Оператор break

Оператор break используется внутри операторов цикла или switch для обеспече­ ния перехода в точку программы, находящуюся непосредственно за оператором, внутри которого находится break.

  1. Оператор continue

Оператор continue перехода к следующей итерации цикла continue пропускает все операторы, оставшиеся до конца тела цикла, и передает управление на начало следую­щей итерации.

  1. Оператор return

Оператор возврата из функции return завершает выполнение функции и переда­ет управление в точку ее вызова. Вид оператора: return [ выражение ]; Выражение должно иметь скалярный тип. Если тип возвращаемого функцией значения описан как void, выражение должно отсутствовать.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]