Другие языки программирования и технологии

чем опасен оператор Go To?

Дмитрий Ивлев
Дмитрий Ивлев
2 108
Оператор goto не "опасен", а часто бесполезен. В некоторых языках, в которых не рекомендуется без причин применять данный оператор, считается, что программист, применивший необоснованно этот оператор ещё не полностью освоил логические конструкции языка. Однако это не значит, что он не применяется вообще. Есть некоторые ситуации, как например глобальный выход из вложенных циклов - вполне оправдано его применение. Также, много необоснованно используемых операторов goto, усложняют оптимизацию программы. Ну и далее все другие плохие моменты, как читабельность, запутанность, случайные ошибки, что уже приведено ранее в комментариях.
Богачук Юрий
Богачук Юрий
76 473
Лучший ответ
оператор этот ничем не опасен, как ружьё висящее на стене.. . покуда криворукий его не возьмёт.

... самое интересное то, что даже без использования этого оператора некоторые девелоперы умудряются создавать такую архитектуру приложения что образуется некий глобальный гоу-ту, реально опасный.

в веб программировании таких выкрутасов полно, когда в коде воплощают реальные бюрократические схемы. вот и ходит потом реквест по сайту не знает куда приткнуться..
Кусается.. . ;) При правильном использовании не опасен, но: а) портит читаемость кода б) что более важно, мешает компилятору оптимизировать код программы
Малик Мадияров
Малик Мадияров
96 126
Дмитрий Ивлев б) не совсем понятно, а какая компилятору разница??
Ничем он не опасен, но почему то спецы считают его использование плохим тоном (
оператор GOTO нарушает структуру программы, ухудшает читабельность кода, усложняет отладку. Короче в программах типа "Hello, world" ни чем не опасен. В больших программах на языках использующих ООП это лишняя возможность выстрелить себе в ногу. Большинство языков (С/С++, Pascal это точно) без проблем могут обходится без него. JAVA вообще goto не имеет
Сергей Плакса
Сергей Плакса
68 014
TCP/IP стэк весь сквозит goto! Но скорость и понятность там на уровне!!!
По невнимательности можно закольцевать эту команду, примерно так:
...
54
55 goto 55
56
а так ничего такого в ней нет, выше написали
Видите код программы, к примеру тоже возращение управления из WinMain в стартовый С-код может не произойти так как goto возможно будет выполнять роль свое образного цикла. Это не есть хорошо. Также goto bли longjump могут сделать не предвиденный прыжок из функции в другую или в другой участок функции, это тоже плохо.
Друзья, goto не стоит использовать только из-за того, что когда в стек команд процессора формируется очередь из команд, из-за goto эта очередь удаляется и заполняется заново. И просто замедляется работа программы из-за большого кол-ва использование goto
Дмитрий Ивлев Откуда такие сведения?