goto нужны или goto не нужны

goto нужны
5
Нейтральная
сторона
1
goto не нужны
8
вы просто не умеете их готовить
Прежде чем писать комментарии или выбрать сторону вы должны авторизироваться!
быдлокод же

05-08-2012 11:41 +2

Если знать особенности компилятора\языка - вполне элегантный инструмент. Надо лишь знать, где лучше ими не пользоватся.

5 комментариев
opera.rulez 05-08-2012 16:13 +1

r619, Где-где, в неструктурированных языках, в которых нет нормальных ветвлений и циклов.

opera.rulez 05-08-2012 21:39 0

opera.rulez, Только обратил внимание, что в исходном сообщении было: «не пользоваться». Конечно же, я имел в виду, что goto нужны только там, где нет других средств.

r619 06-08-2012 21:15 +1

opera.rulez, а, я тоже невчитался и поэтому плюсанул.
Как раз таки в циклах и ветвлениях не советуют использовать.

Хотя, проблему с циклами можно частично решить рекурсией (из хаскеля, например, циклы вообще выдрали. Только рекурсия, только хардкор)

Вообще, я не понимаю, почему нельзя ограничить его неправомерное использование на уровне компилятора.

fhfh 06-08-2012 22:07 0

r619, почему нельзя ограничить его неправомерное использование
может потому, что это предрассудки и навязанное мнение.

r619 07-08-2012 20:02 +1

fhfh, Ну, хотя бы ворнинги выдавать - тоже бы не помешало. Можно и без ерроров.
Время парсинга повысится, но все же

06-08-2012 10:21 0

Пишу оффтоп
Прекрасный топ,
Ведь в сабже не прохаван.
Нужна ещё одна строка,
Просрал стишок уёба

0 комментариев
06-08-2012 22:09 +1

это предрассудки и навязанное мнение.
бывает уйма случаев, когда goto правильнее и эффективнее других решений. да, они специфичны и их почти всегда можно избежать.
'goto' - это в общем-то программистское "табу" - все считают, что это плохо, но не знают почему ). надёжнее всего от чайников - взять и запретить его. а суть проста - каждому инструменту - своя сфера применения.

2 комментария
Gopnik 06-08-2012 22:38 0

fhfh, все считают, что это плохо, но не знают почему
Я знаю, например.

fhfh 10-08-2012 00:19 +1

fhfh, вот буквально сегодня узнал, что в одном из самых быдлокодерских языков - в ПХП goto введён только с 5.3 версии.
не удалён, а добавлен.

05-08-2012 10:59 0

Break'и, GoTo, continue не нужны. Это плохой стиль программирования.

10 комментариев
Anf 05-08-2012 13:11 +1

i.c, Чем break плох?

i.c 05-08-2012 13:32 0

Anf, break (в качестве "аварийного" выхода из цикла) лучше не использовать. ЭВМ сразу примерно оценивает (да, даже если цикл while (true)) и резервирует под это n-ное количество ячеек в памяти. Если не хватает, то резервируются новые. А если мы выходим с помощью break, то получаются, что у нас остаются пустые ненужные ячейки, которые только захламляют память. Поэтому лучше продумывать алгоритмы для решения определенной задачи без использования break. Хотя в наше время это не столь актуально, но все же код выглядит более профессиональным и аккуратным.

i.c 05-08-2012 13:38 0

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

Anf 05-08-2012 14:44 0

i.c, Я думаю современные компилляторы/виртуальные машины оптимизируют использование памяти в этом смысле. Если goto дейтсвительно кажется лишним, то из цикла удобно выйти break'ом, чтобы сэкономить время итд.

Да и вообще, все очень зависит от языка. Возможно низкоуровневым языкам это важно.

if else ведь тоже условная конструкция.

opera.rulez 05-08-2012 16:14 +2

i.c, ЭВМ сразу примерно оценивает (да, даже если цикл while (true)) и резервирует под это n-ное количество ячеек в памяти.

Вот про это, пожалуйста, поподробнее. Мне очень интересно.

i.c 05-08-2012 17:36 +1

opera.rulez, Мне тоже.

r619 05-08-2012 18:09 0

i.c, И мне!

Gopnik 06-08-2012 20:38 +1

i.c, ЭВМ сразу примерно оценивает (да, даже если цикл while (true)) и резервирует под это n-ное количество ячеек в памяти.
Но ведь цикл в ЭВМ реализован как условие с переходом. Какие ячейки, какая память?
От goto отказались не потому, что он тормозил, а от того, что с ним код превращался в нечитаемый пиздец, в котором невозможно разобраться и который хуй отладишь.
Преподаватель даже как-то рассказывал, что даже условные конструкции лучше не использовать
Расскажи своему преподавателю, что с 70х уже лет 40 прошло. Сейчас это не имеет никакого смысла.

opera.rulez 06-08-2012 22:30 0

Gopnik, Как думаешь, рассказать ему про конвейер; про то, что в многозадачном режиме от него мало толку; про то, что компиляторы любую конструкцию в конечном счёте транслируют в джампы?

Или он имел в виду, что в продвинутых языках программирования от goto может навернуться garbage collector или автоматическое освобождение при выходе из зоны видимости?

Gopnik 06-08-2012 22:45 0

opera.rulez, Конечно расскажи, ХВ- образовательный сайт. Мы должны нести свет знаний в массы.

07-08-2012 18:27 0

В джаве goto нету просто, но там есть метки для выхода через break или continue

1 комментарий
opera.rulez 07-08-2012 19:05 0

BerkutOi, На эффективности кода break/continue как-нибудь отражается? Т. е. лучше заводить флаг для проверки условия выхода или использовать break?