Другие языки программирования и технологии
Почему goto нехороший стиль программирования ?
Почему использование goto в программировании нехороший стиль программирования ?
Настоящий профессионал должен уметь пользоваться всеми средствами языка, в том числе и оператором goto, иначе он не профессионал. Наклепать гвоно код можно и без goto, а вот оценить целесообразность применения goto, и в случае необходимости повысить эффективность кода без ущерба структурирования и читабельности - это сложная задача. Фанатично шарахаются от goto как правило начинающие недопрограммисты.
goto ничуть не ухудшает опримизацию компилятором, поскольку во все операторы с разветвлением вмонтирован goto, которого программист не видит. А беспорядок (лапшу и прочее) делает не оператор goto, а программист, так что не надо сваливать свои грехи на несчастный оператор. Во всех багах виноваты только ваши кривые руки и косые глаза.
goto ничуть не ухудшает опримизацию компилятором, поскольку во все операторы с разветвлением вмонтирован goto, которого программист не видит. А беспорядок (лапшу и прочее) делает не оператор goto, а программист, так что не надо сваливать свои грехи на несчастный оператор. Во всех багах виноваты только ваши кривые руки и косые глаза.
Данный оператор включен в C/C++ для совместимости с Assembler, в котором без него нельзя обойтись. Существует такое понятие как Архитектура фон Неймана, она включает пять принципов, четвёртому, из которых, использование goto противоречит!
Однако, есть случай, когда использование оператора необходимо. Этот тот случай, когда нужно немедленно выйти из глубоко вложенного цикла, например 20-го. Но, и в этом случае, метка должна находится сразу после окончания самого внешнего цикла. Такая конструкция позволит, сократить количество проверок в циклах, что существенно сократит код, увеличит быстродействие и не нарушит принцип последовательности выполнения алгоритма.
Однако, есть случай, когда использование оператора необходимо. Этот тот случай, когда нужно немедленно выйти из глубоко вложенного цикла, например 20-го. Но, и в этом случае, метка должна находится сразу после окончания самого внешнего цикла. Такая конструкция позволит, сократить количество проверок в циклах, что существенно сократит код, увеличит быстродействие и не нарушит принцип последовательности выполнения алгоритма.
Такой вопрос может задать только тот, кто не пробовал модифицировать ЧУЖУЮ программу с кучей GOTO. Мне такое счастье досталось. С тех пор я даже насильственным способом запрещал его использование.
так говорят те, кто и в трёх соснах заблудиться может.
По трем причинам: делает программу менее понятной, мешает оптимизации кода компилятором и замедляет выполнение программы процессором, тому приходится сбрасывать конвейер команд.
Слишком легко запутаться. Например, такой псевдокод:
...какой-то код с развилками и циклами; (1)
открыть_файл;
...еще какой-то код с развилками и циклами; (2)
закрыть_файл;
...и еще какой-то код с развилками и циклами; (3)
в нем точно известно, что файл открылся и закрылся.
А если вместо развилок и циклов ставить goto, то где-то может оказаться переход из блока (1) в блок (2), и тогда получится, что идет работа с неоткрытым файлом, или из блока (2) в блок (3) - тогда файл не закроется после работы.
...какой-то код с развилками и циклами; (1)
открыть_файл;
...еще какой-то код с развилками и циклами; (2)
закрыть_файл;
...и еще какой-то код с развилками и циклами; (3)
в нем точно известно, что файл открылся и закрылся.
А если вместо развилок и циклов ставить goto, то где-то может оказаться переход из блока (1) в блок (2), и тогда получится, что идет работа с неоткрытым файлом, или из блока (2) в блок (3) - тогда файл не закроется после работы.
потому что ведет к лапше и ухудшает читаемость кода
Код становится запутанным. "Прыжки" могут привести к пропуску необходимых операций, определения данных или др.
...Он уже давно "вышел
из употребления" в программировании, поскольку способствует созданию
"макаронного" кода. Тем не менее оператор goto все еще находит применение — иногда даже
эффективное. В этой книге не делается никаких далеко идущих выводов относительно
правомочности использования оператора goto для управления программой. Следует,
однако, подчеркнуть, что этому оператору трудно найти полезное применение, и
поэтому он не особенно нужен для полноты языка программирования. Хотя в некоторых
случаях он оказывается удобным и дает определенные преимущества, если
используется благоразумно. В силу этих причин оператор goto упоминается только в данном
разделе книги. Главный недостаток оператора goto с точки зрения программирования
заключается в том, что он вносит в программу беспорядок и делает ее практически
неудобочитаемой. Но иногда применение оператора goto может, скорее, прояснить,
чем запутать ход выполнения программы.
из употребления" в программировании, поскольку способствует созданию
"макаронного" кода. Тем не менее оператор goto все еще находит применение — иногда даже
эффективное. В этой книге не делается никаких далеко идущих выводов относительно
правомочности использования оператора goto для управления программой. Следует,
однако, подчеркнуть, что этому оператору трудно найти полезное применение, и
поэтому он не особенно нужен для полноты языка программирования. Хотя в некоторых
случаях он оказывается удобным и дает определенные преимущества, если
используется благоразумно. В силу этих причин оператор goto упоминается только в данном
разделе книги. Главный недостаток оператора goto с точки зрения программирования
заключается в том, что он вносит в программу беспорядок и делает ее практически
неудобочитаемой. Но иногда применение оператора goto может, скорее, прояснить,
чем запутать ход выполнения программы.
Александр, Вы написали полный бред. Использование goto правда является плохим стилем. Не буду говорить что-то большее и говорить, что Вы чего-то не знаете только из-за Ваших (84220).. Заслуживает хотя бы внимания.
ответ по запросу лапши программирование в википедии
Похожие вопросы
- Какие стили программирования Вы знаете в с++?
- Почему использование табов для отступов считается плохим стилем программирования?
- Почему goto считается неправильным оператором? И как предлагается "правильно" выйти из третьего вложенного цикла?
- Стиль программирования. Какое правило стилистики "сильнее"?
- Что вами движет почему некоторые программисты выбирают "программирование" на 1С.
- Язык программирования Почему нет Русских языков Программирования? Почему все языки на Английском ?
- Почему числа в языках программирования называются константами?
- Почему так много языков программирования? Почему не существует только один универсальный? Зачем так много?
- Возможно задаю глупый вопрос, так что извиняйте, почему бы в языках программирования не сделать динамические переменные?
- Почему женщин редко интересует программирование??