Оператор goto предназначен для безусловной передачи управления к оператору с указанной меткой. Он имеет следующую форму:
goto метка; Керниган и Ритчи считают оператор goto "чрезвычайно плохим" средством и предлагают применять его как можно реже или не применять совсем. Приведем пример записи оператора:
goto part1; Чтобы этот оператор выполнялся правильно, необходимо наличие другого оператора, имеющего метку part1. В этом случае запись оператора начинается с метки, за которой следует двоеточие:
part1: printf("точка перехода\n"); | !
| Избегайте использовать goto! С тех пор как Дейкстра опубликовал свой знаменитый труд "Вредность оператора GOTO", специалисты бились над методами структурного программирования. Отметим, что нужно очень осторожно использовать операторы: goto, break, continue, return.
|
Если без операторов goto, break, continue, return никак не обойтись, то при использовании goto переходите вперед по коду, а не назад.
Оператор break лучше не использовать для преждевременного выхода из цикла, его полезно использовать внутри оператора switch.
Оператор continue нежелательно использовать для модификации логики циклов.
| !
| Почему нежелательно использовать функции со многими операторами return. Один из принципов структурного программирования состоит в том, что программа должна иметь одну точку входа и одну точку выхода. Функции со многими операторами return более сложны для чтения, чем те, которые имеют лишь один оператор return в конце тела функции.
|