Оператор goto применяется в основном в прикладном или системном программировании на высокоуровневых языках, которые поддерживают разбивку кода на структуру и структурную обработку исключений:
- Java;
- C#;
- C++;
- C;
- Python;
- и др.
Это довольно спорный оператор, и по сей день ведется много дискуссий по поводу необходимости его применять. Так происходит, потому что мотивы его применения при разном подходе программирования очень сильно отличаются.
Оператор goto: общие свойства
Оператор goto нужен в тех случаях, когда по каким-то причинам необходимо осуществить безусловный переход к определенной точке в коде программы, как правило, эта точка обозначается номером строки или меткой. Поэтому в основном этот оператор состоит из 2-х частей:
- Самого оператора goto;
- Метки. В основном метка goto — это какое какое-то число, но в некоторых языках это может быть абсолютно любой идентификатор.
Основная цель этого оператора заключается в том, что он определяет порядок исполнения программы. То есть программа будет исполняться сразу после метки goto.
Можно постараться обобщить свойства goto:
- Вообще не структурирован. То есть он может применяться в абсолютно любом месте кода, место его применения ни от чего не зависит.
- Может сгруппировать исходный код. Если есть структура кода, то в принципе можно оперировать блоками кода по-разному: переставлять их местами, как в конструкторе ЛЕГО. Однако если применить оператор goto, то «конструктор» с блоками будет практически невозможен, потому что это способно напрочь сломать программу.
Применениеgoto в коде программы в первую очередь влияет на качество самого кода и на его компоненты. Поэтому применение goto должно быть хорошо обдуманным, а возможно, даже проще найти какие-нибудь более безопасные альтернативы.
Оператор goto в современном программировании — часто в более «древних» языках, таких как Basic или Fortan, реже он используется в Си. В более современных языках его стараются не использовать, потому что существуют альтернативные и более эффективные методы:
- использование циклов;
- внедрение обработчиков исключений;
- деструкторы;
- и др.
Раньше оператор goto активно применяли, особенно в Си. Но современное программирование очень усложнилось, и его применение стало нецелесообразно. Многие современные программисты замечают, что применение goto дает неконтролируемую возможность «прыгать по коду». А когда код разрастается, то получается эффект «spaghetti». «Spaghetti-код» — это код, который очень сильно запутан и закручен, что напоминает одноименное блюдо.
Поэтому есть общая рекомендация по применению этого оператора:
Применять оператор goto можно только при условии, когда на это есть очень веская причина, а поиск альтернативных методов не принес никаких результатов.
Другое