КИТА unofficial

Компьютерный => Программирование => Тема начата: vimmax от Февраль 23, 2007, 11:55:17



Название: Стоит ли использовать оператор goto в программировании и почему.
Отправлено: vimmax от Февраль 23, 2007, 11:55:17
В одной викторине было упомянуто, что от оператора goto следует вообще отказаться и не использовать его в программировании.
Хотелось бы узнать различные мнения и причины.
Касается всех языков программирования: asm, C / C++, Delphi, Basic, Java, и др. Кто что может сказать?

Лично я ответа не знаю, иначе этот вопрос был бы новой темой раздела "Викторины"))))))) Слышал от преподавателей в универе что нежелательно, а почему никто объяснить толком не смог.


Название: Re: Стоит ли использовать оператор goto в программировании и почему.
Отправлено: Sochin от Февраль 23, 2007, 12:26:03
Потому что этот оператор при постоянном использовании в программах на ЯВУ нарушает принципы структурного программирования и затрудняет развитие проекта в будущем. Хотя сам по себе единичный goto ничего страшного не привносит.

Эдсгер Дейкстра, знаменитый ученый, лауреат Премии Тьюринга еще в 1968 году описал все "прелести" этого оператора. Вот его статья: Go To Statement Considered Harmful (http://www.acm.org/classics/oct95/).


Название: Re: Стоит ли использовать оператор goto в программировании и почему.
Отправлено: vimmax от Февраль 23, 2007, 12:57:02
Sochin - почитал, спасибо. вопросов больше нет.


Название: Re: Стоит ли использовать оператор goto в программировании и почему.
Отправлено: San_V от Март 06, 2007, 12:28:35
Когда пишешь непосредственно для микропроцессора на ассемблере, без goto вообще никак нельзя обойтись. Даже теоретически. Если посмотреть прогу, написанную на С и после компиляции, она вся набита операторами jmp, т.е. оператором безусловных переходов.


Название: Re: Стоит ли использовать оператор goto в программировании и почему.
Отправлено: Sochin от Март 06, 2007, 03:07:22
San_V, речь идет об ЯВУ и о исходниках. Никто не говорит отменить безусловные переходы в асме. ))


Название: Re: Стоит ли использовать оператор goto в программировании и почему.
Отправлено: San_V от Март 06, 2007, 05:52:00
Касается всех языков программирования: asm, C / C++, Delphi, Basic, Java, и др. Кто что может сказать?

Речь идет и об asm тоже, вот я и высказался на этот счет.


Название: Re: Стоит ли использовать оператор goto в программировании и почему.
Отправлено: Магнетон Бора от Август 12, 2008, 11:56:15
сам по себе единичный goto ничего страшного не привносит.

Когда я только начинал изучать язык С и сдавал самый первый вычислительный практикум я ввсего лишь один разок использовал в программе оператор goto и преподаватель прочитал мне целую лекцию о том, что программист ов, использующих этот оператор не уважают :D


Название: Re: Стоит ли использовать оператор goto в программировании и почему.
Отправлено: EvilMax от Август 13, 2008, 12:43:40
Магнетон Бора, хехе, логично. В C, хотя некоторые спорят по поводу его высокоуровневости, оператор безусловного перехода безусловно вреден. Любой алгоритм можно написать и без него - доказано умными дядьками. :)  А вот использование оператора зачастую делает программу плохо читаемой и затрудняет поддержку.

Хотя, есть одно НО. Если программист настолько хорошо знает архитектуру платформы, под которую пишет, знает внутренности и особенности компилятора, не исключено, что он сможет в некоторых случаях написав goto выиграть несколько тактов процессора, а может, и больше.

Но так как компиляторов уйма, платформ тоже не одна и даже не две, такие прогеры скорее исключение из общего правила. Посему goto вреден. А в описанном случае выгоднее написать фрагмент на ассемблере для данной платформы.