- Оператор goto
- Работа
Оператор goto
Последний оператор языка Си - оператор безусловного перехода goto. Шаблон оператора такой:
goto <метка>;
Метка - это идентификатор, при объявлении завершаемый двоеточием. Этот идентификатор служит для обозначения определенного места в программе, где метка объявлена (отождествляется с адресом исполняемого кода в памяти программ). При использовании в операторе goto метка указывается уже без двоеточия.
Оператор goto вызывает безусловное продолжение исполнения программы с указанной метки.
Пример использования меток и оператора goto:
if (a < 5) goto m1;
a = 0;
goto m2;
m1:
a = 25;
m2:
Этот пример показывает реализацию следующего алгоритма: если значение переменной а меньше пяти, то присвоить переменной значение 25, в противном случае обнулить переменную а.
Использование оператора goto в программах считается дурным тоном среди программистов. Как правило, программы с этими операторами более запутаны, труднее отлаживаются, таят больше потенциальных возможностей для ошибок. Метка может находиться почти в любом (1) месте программы, и соответственно, оператор goto может заставить программу изменить нормальный ход непредсказуемым образом, если программист случайно забудет вовремя убрать или изменить нужную метку. Доказано, что любой алгоритм может быть реализован без использования goto, лишь с помощью других операторов языка Си. Например, только что рассмотренный алгоритм элементарно и гораздо красивее реализуется так:
if (a < 5)
a = 25;
else
a = 0;
- Об ограничениях на размещение меток см. главу «Структура программы».