Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

Оператор передачи управления goto

CuBook25

Оператор goto позволяет прервать обычный поток управления и передать управление в произвольную точку кода, помеченную специальной меткой. В свое время при появлении концепции структурного программирования на оператор goto обрушился поток критики и его применение стало рассматриваться как дурной тон. Действительно, чрезмерно широкое применение goto делает структуру программы крайне запутанной и затрудняет ее сопровождение. Однако во многих случаях стремление обойтись без оператора goto не только не упрощает код, а еще более его запутывает. Так что этот оператор, безусловно, имеет право на существование.
 
Без особой лучше обходится без применения оператора goto. В некоторых случаях применение goto не только не запутывает программу, но, наоборот, делает ее более понятной и облегчает отладку. Старайтесь размещать передачу управления и метки, на которые передается управление, недалеко друг от друга и как следует выделяйте их и снабжайте соответствующими комментариями.
 
Метка в тексте программы обозначается идентификатором с последующим двоеточием. Например:
Metka:
Метка отмечает точку, в которую передается управление оператором goto. Метка может располагаться в любом месте блока, как после оператора goto, передающего на нее управление, так и до этого оператора. Надо только иметь в виду, что передача управления извне внутрь цикла может приводить к непредсказуемым последствиям, так что таких ситуаций следует избегать. Метки можно использовать всюду в функции, в которой они появились, но на них нельзя ссылаться вне тела функции. Метки используются также в структурах switch (как метки case).
 
После метки следует оператор, на который передается управление. Сам оператор goto имеет форму:
goto метка;
Таким образом, организация работы с операторами goto может выглядеть, например, так:
goto L1;
second: ...
L1: ...
if (...) goto L1;
else goto second;
При этом, как видно, можно ссылаться на метки, расположенные после или до оператора goto.
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий