КИТА unofficial
Май 06, 2024, 06:58:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   ПРАВИЛА Помощь WIKI PDA Войти Регистрация  


Страниц: [1]   Вниз
  Печать  
Автор Тема: Стоит ли использовать оператор goto в программировании и почему.  (Прочитано 8174 раз)
0 Пользователей и 1 Гость смотрят эту тему.
vimmax
Mодератор
Декан
*****

Карма: +42/-3
Offline Offline

Пол: Мужской
Награды:
лучшая гитара мира
Сообщений: 1713


♪♪ ♫ ♪♪ ♫ ♪♪ ♫ ♪♪


« : Февраль 23, 2007, 11:55:17 »

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

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

♪♪ ♫  LET FOREVER BE  ♫ ♪♪ ♫ ♪♪ ♪♪ ♫
Sochin
Злой модератор
Декан
*****

Карма: +108/-6
Offline Offline

Пол: Мужской
Сообщений: 1518



« Ответ #1 : Февраль 23, 2007, 12:26:03 »

Потому что этот оператор при постоянном использовании в программах на ЯВУ нарушает принципы структурного программирования и затрудняет развитие проекта в будущем. Хотя сам по себе единичный goto ничего страшного не привносит.

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

Говорят, когда компьютер сгорает, перед взором микропроцессора за долю секунды проносятся все операции, которые он когда-либо совершил...
壯鎭
vimmax
Mодератор
Декан
*****

Карма: +42/-3
Offline Offline

Пол: Мужской
Награды:
лучшая гитара мира
Сообщений: 1713


♪♪ ♫ ♪♪ ♫ ♪♪ ♫ ♪♪


« Ответ #2 : Февраль 23, 2007, 12:57:02 »

Sochin - почитал, спасибо. вопросов больше нет.
Записан

♪♪ ♫  LET FOREVER BE  ♫ ♪♪ ♫ ♪♪ ♪♪ ♫
San_V
Доцент
****

Карма: +9/-0
Offline Offline

Пол: Мужской
Сообщений: 624



« Ответ #3 : Март 06, 2007, 12:28:35 »

Когда пишешь непосредственно для микропроцессора на ассемблере, без goto вообще никак нельзя обойтись. Даже теоретически. Если посмотреть прогу, написанную на С и после компиляции, она вся набита операторами jmp, т.е. оператором безусловных переходов.
Записан

А кто будет портить великий русский язык, тот получит в рыло без базара
(c) Cannibal Corpse
Sochin
Злой модератор
Декан
*****

Карма: +108/-6
Offline Offline

Пол: Мужской
Сообщений: 1518



« Ответ #4 : Март 06, 2007, 03:07:22 »

San_V, речь идет об ЯВУ и о исходниках. Никто не говорит отменить безусловные переходы в асме. ))
Записан

Говорят, когда компьютер сгорает, перед взором микропроцессора за долю секунды проносятся все операции, которые он когда-либо совершил...
壯鎭
San_V
Доцент
****

Карма: +9/-0
Offline Offline

Пол: Мужской
Сообщений: 624



« Ответ #5 : Март 06, 2007, 05:52:00 »

Касается всех языков программирования: asm, C / C++, Delphi, Basic, Java, и др. Кто что может сказать?

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

А кто будет портить великий русский язык, тот получит в рыло без базара
(c) Cannibal Corpse
Магнетон Бора
ЖИЗНЬ - БАЯН
Cтудент
*

Карма: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 61



« Ответ #6 : Август 12, 2008, 11:56:15 »

сам по себе единичный goto ничего страшного не привносит.

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

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #7 : Август 13, 2008, 12:43:40 »

Магнетон Бора, хехе, логично. В C, хотя некоторые спорят по поводу его высокоуровневости, оператор безусловного перехода безусловно вреден. Любой алгоритм можно написать и без него - доказано умными дядьками. Улыбка  А вот использование оператора зачастую делает программу плохо читаемой и затрудняет поддержку.

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

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

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Penguins Counter Powered by MySQL Powered by PHP Powered by SMF 1.1.8 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS! Internetmap
Страница сгенерирована за 0.15 секунд. Запросов: 30.