В качестве дополнения к совету Мехрада Афшари, приведенному выше, я бы никогда не рекомендовал просто изгнать конструкцию как «плохой код» или «плохую практику кодирования». Даже заявления «goto» имеют свое место в общей схеме вещей. Догма о том, что они злые, не сбылась из-за какого-либо врожденного недостатка конструкции - это было потому, что они были сильно (и плохо) чрезмерно использованы.
В любом случае, Керниган и Ричи считали, что позволить делу провалиться - это правильный путь. Честно говоря, я больше склонен доверять их рассуждениям, чем всему, что могло бы прийти в голову во всем Редмонде, штат Вашингтон. Или любая догма, основанная на мудрости любого ума в Редмонде.
Если вы когда-нибудь услышите «Никогда не используйте xxx», мысленно добавьте это «без причины». Просто выбрасывать что-либо догматично - смешно. Устройства существуют, потому что была причина, чтобы сделать их. В ретроспективе их обычно называют «плохими» не из-за какой-либо неисправности самого устройства, а скорее потому, что их плохо использовали люди, которые их не полностью понимали. Таким образом, устройство вряд ли когда-либо «плохое». Что почти всегда плохо, так это пользователь понимание . Это верно даже для атомного деления и синтеза.
Я видел ужасно гротескные структуры кода, единственной функцией которых было избежать использования оператора 'goto'. Что хуже? "goto [метка]", или 30 строк отвратительного кода, функция которого состоит в том, чтобы избежать ввода "goto [метка]"?
Ищите знания перед догмой. Думай прежде чем сделать. Это полезные советы.