Здравствуйте, rusted, Вы писали:
BBI>>>Я конечно не люблю goto и не использую его, но твой пример выглядит и читается куда хуже чем пример с goto. V>>Это неправда. Пример с несколькими goto читается хуже, потому-что увидев goto надо искать точку перехода для каждого отдельно, а про свич сразу всё ясно что она за скопом. R>Про switch сразу всё ясно только тому, кто этот switch написал, реакция всех остальных — "что это за непонятное использования switch-а?"
Да что ты говоришь, а мужики то незнали
Есть вызод проще: пишешь на плюсах и не морочишь сишникам голову своей готофобией...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Афигный цикл!!!
Угу и его так офигенно до сих пор и сишники и плюсники пользуют и не плюются. E>Есть вызод проще: пишешь на плюсах и не морочишь сишникам голову своей готофобией...
дартаньян? я вас четсно не узнал в гриме.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
И дввно вы с собой разговариваете?
Я это к тому, что отрицать широкое использование гото для очистки в крупных успешных сишных проектах не приходится. Так что в теории о ужасах гото надо чегой-то поднастроить
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
V>>дартаньян? я вас четсно не узнал в гриме. E>И дввно вы с собой разговариваете?
а вы?
E>Я это к тому, что отрицать широкое использование гото для очистки в крупных успешных сишных проектах не приходится. Так что в теории о ужасах гото надо чегой-то поднастроить
Ну так я и отвечал на возмущение вовсе не про goto.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
V>Здравствуйте, jazzer, Вы писали:
J>>ибо нет другого способа в языке для выхода из нескольких уровней циклов V>А флажки проверять не комильфо?
продемонстрируй, плиз http://www.rsdn.ru/forum/flame.comp/4610257.1.aspx
о чем вообще речь я же привел примеры линуксовых
list_for_each_entry флажки в данном случае вообще не применимы
но тем не менее ты находишся в контексте трех вложенных
циклов и надо срочно выйти
вообще складывается ощущение что готофобы рассматривают
некую идеальную ситуацию оторванную от реальной жизни
и на ее основе доказывают как хорошо жить без гото а
в случае реальных жизненных ситуаций где без гото сложно
начинают городить такой говнокод где гото и рядом не лежал
и вообще я считаю что готофобия это болезнь и бесполезно
доказывать готофобам что то это не лечится
Здравствуйте, jazzer, Вы писали:
EOH>>>Для C и C++ goto — единственный способ выйти из вложенного цикла (кроме функций, плодить которые в ряде случаев совсем не хочется). Q>>Нормальные люди из вложенных циклов выходят по условиям, ибо даже break/continue -- это тот же goto. J>э-э-э... даешь мастер-класс? J>
Здравствуйте, Vain, Вы писали:
E>>Флажки -- во это точно говнокод, прошу простить мой френч. V>когда это флажки стали говнокодом по сравнению с goto?
Всегда были...
У тебя есть конкретные претензии к прктике выхода из вложенных циклов по гото?
Если все претензии сводятся к тому, что там есть гото, то иди, обсуди это со своими единомышленниками. Я не считаю, что гото -- это однозначно плохо и не запрещаю своим подчинённым его использовать...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Vain, Вы писали:
J>>Продемонстрируешь, как "нормальные люди выходят по условиям" из таких вложенных циклов? (многоточия — это значимый код) V>флажки пользуют: V>
Здравствуйте, Erop, Вы писали:
E>>>Флажки -- во это точно говнокод, прошу простить мой френч. V>>когда это флажки стали говнокодом по сравнению с goto? E>Всегда были...
а мужики то и не знали..
E>У тебя есть конкретные претензии к прктике выхода из вложенных циклов по гото? E>Если все претензии сводятся к тому, что там есть гото, то иди, обсуди это со своими единомышленниками. Я не считаю, что гото -- это однозначно плохо и не запрещаю своим подчинённым его использовать...
Ну так чем же флажки хуже goto?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Cadet, Вы писали:
C>Расстрелять без суда и следствия. Ты код превратил в головоломку, какой break к какому циклу относится.
Вы вдруг код разучились читать?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
уместен ли тут флажок?
Я считаю, что не уместен.
Мало того, я считаю, что следующий код логически эквивалентен предыдущему:
for( тут чего-то итерируем по x ) {
тут чего-то такое достаём, прикидываем, готовим
if( yyy1 ) {
goto endOfLoop;
}
for( тут итерируем по y ) {
if( xxx1 ) {
doXXX1;
}
if( xxx2 ) {
doXXX1;
goto endOfLoop
}
if( xxx3 ) {
doXXX3;
}
}
endOfLoop: ;
}
То есть если в первом флажок не нужен, то и во втором не нужен...
Но в целом вопрос не особо важный. Я не думаю, что флажками ты всё сможешь запутать вусмерть.
Другое дело, что догматизм и отсутсвие внятной аргументации -- это плохая практика и тревожный симптом
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
C>Расстрелять без суда и следствия. Ты код превратил в головоломку, какой break к какому циклу относится.
Главное, что не ясно, ради чего все эти напряги. Никто так внято и не смог пояснить что такого ужасного в гото по сравнению, например, с этой break-лапшой...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Никто так внято и не смог пояснить что такого ужасного в гото
1. Тем что метку глазами надо искать и тем что в исходном примере
"хорошесть" способа так и не раскрыта.
2. Местка может быть и выше скопа, а не только ниже. С бреком обычно всё ясно что выход из ближайшего switch/while/for-а.
3. Нету скопов, код превращается просто в листинг без отступов, со скопами всегда делают отступ, отсюда и наглядность брека.
E>по сравнению, например, с этой break-лапшой...
goto-лапша не лучше.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
E>>Никто так внято и не смог пояснить что такого ужасного в гото V>1. Тем что метку глазами надо искать и тем что в исходном примере
"хорошесть" способа так и не раскрыта.
"goto error_exit" — это абсолютно стандартный паттерн, который понятен любому С-шнику. Его не надо искать глазами, он гарантировано будет в конце функции.
V>2. Местка может быть и выше скопа, а не только ниже. С бреком обычно всё ясно что выход из ближайшего switch/while/for-а.
Ага, а с флажками надо ещё:
1) Смотреть где он проверяется.
2) Смотреть как он инициализируется.
3) Смотреть, не меняется ли он где-то ещё.
E>>по сравнению, например, с этой break-лапшой... V>goto-лапша не лучше.
Лучше. Она банально компактнее.
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, Vain, Вы писали:
E>>>Никто так внято и не смог пояснить что такого ужасного в гото V>>1. Тем что метку глазами надо искать и тем что в исходном примере
"хорошесть" способа так и не раскрыта. C>"goto error_exit" — это абсолютно стандартный паттерн, который понятен любому С-шнику. Его не надо искать глазами, он гарантировано будет в конце функции.
V>>2. Местка может быть и выше скопа, а не только ниже. С бреком обычно всё ясно что выход из ближайшего switch/while/for-а. C>Ага, а с флажками надо ещё: C>1) Смотреть где он проверяется. C>2) Смотреть как он инициализируется. C>3) Смотреть, не меняется ли он где-то ещё.
Ну так это абсолютный стандартный паттерн, который понятен любому С-шнику. Его не надо искать глазами, он гарантировано будет после цикла.
E>>>по сравнению, например, с этой break-лапшой... V>>goto-лапша не лучше. C>Лучше. Она банально компактнее.
С аргументом про скоп значит согласны?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]