Использование GOTO

Windows лучше чем Linux! Чем? Ясно же написано — чем Linux!
Раздуй свой холивар сегодня, потому что завтра это может сделать уже кто-то другой!

Cчитаете ли вы оправданым использование goto?

Да
23
29%
Иногда, в исключительных ситуациях
40
51%
Нет
13
17%
Свой вариант
2
3%
 
Всего голосов : 78

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Re:

Сообщение alibek » 29.09.2008 (Пн) 10:46

Sebas писал(а):Либо выношу в отдельную поцедуру, соответственно Return.

В смысле, GoSub?
Вот GoSub точно использовать не стоит, он не оптимизируется.
Lasciate ogni speranza, voi ch'entrate.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Re:

Сообщение Mikle » 29.09.2008 (Пн) 12:37

Sebas писал(а):If ... Then Exit For х
Я, лично, упаковываю такую "карусель" в Do Loop и , соответственно, Exit Do. Либо выношу в отдельную поцедуру, соответственно Return.

У цикла For есть привязанная переменная "x", но у Do или While ее нет, поэтому я так и написал, универсально для всех случаев.
А упаковку в Do с выходом по Exit Do мы обсудили выше, я тоже так поступаю, как правило. Но только не GoSub.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 27.06.2011 (Пн) 19:44

d3drm писал(а):уважаемые, напишите, какие минусы у GOTO, кроме как что он нарушает логику кода?

Минусы были в C++. Можно было создать ситуацию, в которой через goto обходится конструктор объекта, но при выходе из блока вызывается деструктор. Хотя, на мой взгляд, если писать нормально, то таких проблем не будет.

Ramzes писал(а):в ООП НЕДОПУСТИМО!!!

По-моему, для .NET не актуально. Хотя, если внутрь using, то, наверное, плохо будет.

d3drm писал(а):собственно вывод пока таков: GoTo портит читабельность кода, но исключительно в ситуациях его глупого использования (замена более удобных операторов).
может стоит бояться не оператора GoTo, а кудрявости собственных рук?

Полностью согласен.

keks-n писал(а):А зачем? Флаг и условие.
P. S. GoTo замедлит программу, т. к. компилер не сможет сделать оптимизацию.

Наоборот, флаг замедлит выполнение, т.к. он обязан проверяться на каждой итерации, а GoTo - это единственный переход.

Я за то, чтобы использовать goto там, где он полезен, но не для замены циклов (в большинстве случаев). Есть только одна ситуация, когда goto может использоваться для замены цикла: есть (почти) бесконечно повторяемый кусок кода, переходы из которого к его началу происходят из большого числа мест.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Использование GOTO

Сообщение Viper » 28.06.2011 (Вт) 5:12

А ничего что три года прошло?
Весь мир матрица, а мы в нем потоки байтов!

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 28.06.2011 (Вт) 12:33

Viper писал(а):А ничего что три года прошло?

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

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Использование GOTO

Сообщение ger_kar » 03.07.2011 (Вс) 21:30

Viper писал(а):А ничего что три года прошло?

Qwertiy писал(а):А за эти 3 года что-то поменялось? GoTo как был, так и остался, его сторонники и противники тоже.

Есть вечноживые темы и это одна из них, так же как и вечно живой Goto.
Бороться и искать, найти и перепрятать

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 03.07.2011 (Вс) 22:31

ger_kar писал(а):... так же как и вечно живой Goto.

В Джаве от него избавились. Заменили на возможность использования метки для управления циклом в break и continue.
Очень надеюсь, что Microsoft так не поступит.

PS: Не люблю Джаву.

Пред.

Вернуться в Holy Wars@VBStreets

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

    TopList