Некоторые авторы книг выступают против использования оператора goto в программировании, потому что его чрезмерное применение приводит к созданию запутанной, трудночитаемой и трудноотлаживаемой программы. 4 Поток выполнения становится непредсказуемым, следить за ним сложно, а поиск ошибок превращается в настоящий кошмар. 4
Кроме того, использование goto «подбивает» авторов кода решать проблемы не путём понимания структуры и написания программы так, чтобы структура была очевидна, а путём простого механического перехода на нужный кусок кода. 1
Современные языки программирования предлагают более элегантные и понятные средства управления потоком выполнения: циклы, условные операторы, функции и процедуры. 4 Эти инструменты позволяют создавать программы с чистой и структурированной архитектурой, что значительно упрощает их разработку, отладку и последующее обслуживание. 4