GOTO
Здравствуйте, такая ситуация. Мы с одним знакомым регулярно спорим, насчёт того, является ли использование GОTО признаком безграмотного програмиста. Речь идёт не просто о его наличии в программе, а даже использовании его, вместо цикла:
Код:
1: Код:
openfile(...) Просьба такая, можете здесь доходчиво объяснить, почему нельзя использовать GoTo, желательно приводя технические, а не только моральные причины. |
Ответ: GOTO
|
Ответ: GOTO
Цитата:
|
Ответ: GOTO
Это к Ымперу
|
Ответ: GOTO
всё что реализуется с помощью goto легко реализуется конструкциями языка типа if-then, for-next, switch, select и т.д.
Однако использование goto делает код менее читабельным. С технической стороны goto и заменяющие конструкции это прыжки по памяти. |
Ответ: GOTO
ничего против goto не имею. если переход осуществляется в пределах экрана (10-20 строчек от вызова до метки), то думаю ничего страшного нет.
|
Ответ: GOTO
как SBJOker написал это скачок по памяти
а ак известно скачки по памяти замедляют программу на доли секунду(милисекунду)=>если программа и так лагает то лучше воздержаться от ГОТО,а если нормально и надо обработать от 5 до 15(-20,(кол-во строк зависит:смотря какие команды и используете ли вы функции свои) строк,то можно спокойно ставить.Опять же если намудрёные свои функции то лучше воздержаться от ГОТО |
Ответ: GOTO
Цитата:
|
Ответ: GOTO
Если вы не можете чётко мотивровать: чем это в вашем коде ГоТо оправданнее высокоуровневых методов ветвления алгоритма - значит от его использования пока стоит отказаться. Есть ряд задач (и языков!) где ГоТо оправдано, мне из чувства сосбвтенной гордости и надменности, кажется, что это - не тот случай.
|
Ответ: GOTO
Вопросы к любителям GOTO:
1) Ребята, а каким макаром можно без потерь выйти из GOTO цикла? ещё одни Goto? Потрясающе! 2) Сравните Function Превед() и Превед: разработчик обращает внимение на Function, а потом на Превед 3) Неужели GoSub заменяет Function. Слабовероятно. Тогда зачем функции придумали? 4) Внутри классов в BlitzMax вместо кучи методов использовать один метод main() и в нём куча GoTo/GoSUB? Так вот код программы для того, кто её разрабатывает. Я на GOTO собаку ещё на спектруме сьел. И этот оператор считаю отголоском древности, чтоб старики, которые без него не могут сильно не плакали. |
Ответ: GOTO
ГоТо прост и быстр как молотком по голове - раньше (на спектурме) и теперь в некторых быдло-местах (разнообразные ассемблеры и их языки) тоже встречается, но большиство цивилизованных людей использует дипломатию в той или инйо степени.
|
Ответ: GOTO
Цитата:
if [...1] [...2] end if Заменяется на: сравнить значения [...1] если равно(+не больше, +не меньше,... (условия инвертируются при компиляции)) goto _endif [...2] _endif: for a = ? to ? step ? [...2] next Заменяется на: a=? b=? c=? _for: [...2] a=a+c сравнить значения a и b, если меньше перейти на _for Так-что и функции, и методы, и условия, и циклы, это не только скачки, но и дополнительные операции процессора. Но я согласен что goto не всегда нужно. |
Часовой пояс GMT +4, время: 15:37. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot