Инструкции перехода
Использование инструкций break и continue было рассмотрено при изучении инструкции switch и циклических операторов. По поводу инструкции break следует напомнить, что при вложенных циклах она обеспечивает прекращение того цикла, в теле которого она непосредственно расположена.
Инструкция return, служащая для завершения выполнения функций и для возвращения из функций некоторых значений, будет подробно рассмотрена позже, при изучении функций.
В этом параграфе остается рассмотреть инструкцию безусловного перехода goto.
Характеризуя инструкции break(ее использование в циклах), continue и goto в целом, следует сказать, что их применение противоречит принципам структурного программирования и приводит к затруднению понимания алгоритмов программ, их отладки и дальнейшей модификации. Однако, несмотря на это, их использование в ряде случаев бывает оправдано. В принципе, как бы ни был сложен алгоритм программы, его всегда можно реализовать без использования этих инструкций. В основном это достигается за счет введения дополнительных логических переменных (флажков) и некоторого усложнения условий продолжения циклов. Однако в некоторых случаях эти “накладные расходы” оказываются чрезмерными и тогда выгоднее все-таки использовать эти инструкции перехода. Как поступать в тех или иных ситуациях во многом зависит от конкретного алгоритма и от внутренних предпочтений программиста. Но, все же, злоупотреблять использованием этих инструкций не следует.
Инструкция goto обеспечивает переход на выполнение инструкции отмеченной с помощью метки.
Формат записи: goto <Метка>;
Метка представляет собой некоторый идентификатор, за которым следует символ’:’. Меткой может быть помечена любая инструкция, находящаяся в той же функции, в которой находится оператор goto.
Пример использования:
…….
M1: <Инструкция>;
…….
if (<Условие>)
Goto M1;
…….
Наиболее часто обоснованное использование инструкции goto связано с выходом из глубоко вложенных циклов:
Использование в этом случае инструкции break вместо оператора gotoпривело бы к прерыванию только внутреннего цикла. Для прерывания выполнения всех циклов с помощью инструкции break потребовались бы существенные усилия.
Дата добавления: 2019-02-07; просмотров: 258;