Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
maytonВижу завязалась полемика. Для случая с многомерным вектором придется немного извратится. Поскольку break не может разорвать более одного цикла, воспользуемся дополнительной булевой переменной. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Довольно странно. Правда? Появились избыточные синтаксические конструкции .. со всеми вытекающими последствиями, глюками, очепятками. И это - плата за так называемый структурный подход. Можно проверку условия condition() вставить в выражение for, но от этого тоже мало что изменится. Код по прежнему неудобочитаем. Абсолютно с вами соглсен, касательно этого кода. У меня такой вопрос. Просто не могу представить зачем надо такая конструкция? А если могу, то почему ее неьзя засунуть в процедуру и написать внутри выход из процедуры. Даже если надо то mayton Даже если предположить что существует некий оператор breakAll который разрывает выполнение вложенных циклов, в конечном счете он будет реализован как переход по метке. Так и breake, я так думаю, тоже потом скомпилируется как переход по метке. Мы же говорим не о том как оно станет потом, а о исходном коде. Вообщем не хочу дальше показывать свое возможное ламерство. Но в заключение скажу, по моему таки GOTO не у прощает а усложняет код, (в крайнем случае для понимания) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 13:03 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
mayton Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. И это - плата за так называемый структурный подход. ... Код по прежнему неудобочитаем. Поэтому в замечательном языке java есть форма записи break/continue metka; В этой записи явно говориться из какого цикла выйти и итерацию какого цикла продолжить. При этом break/continue это ни аналоги goto, т.к. goto просто показывает "куда идти". Как мне кажется, в этом случае никакой "платы за структурный подход" делать не приходится, всё читаемо :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 13:15 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
Посностью согласен! Но вопрос муссировался в контексте C++/Delphi как следует из вышеуказанных постов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 13:43 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
Це# for(int i=0;i<10;i++) { for(int j=0;j<10;j++) { for(int k=0;k<10;k++) { if (condition(a [j][k])){ i = int.MaxValue; j = int.MaxValue; break; } } } } :) Щютка, хотя в каждой шутке .... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 13:56 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
щюта щюткой, однако сам так делал на с++ :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 15:58 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
Частный случай однако. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 16:18 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
Это не плохо и ни хорошо, это возможность языка. Из личного опыта - был случай, когда стоял выбор - реализовать функцию с использованием и без использования goto. Сделал оба варианта, сравнил. Вариант с goto оказался гораздо более читабелен, понятен и скорострелен. Разумеется, его я и выбрал. Если бы пришлось использовать язык который не поддерживает goto, то никуда не денешься, пришлось бы оставить кривоту кода. Код без goto был украшен подпорками по самое не хочу, и при внесении изменений кода там был бы кошмар потому что пришлось бы отслеживать не только логику кода, но и логику как выполнить goto без goto. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 16:29 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
ну яЭто не плохо и ни хорошо, это возможность языка. Из личного опыта - был случай, когда стоял выбор - реализовать функцию с использованием и без использования goto. Сделал оба варианта, сравнил. Вариант с goto оказался гораздо более читабелен, понятен и скорострелен. Разумеется, его я и выбрал. Если бы пришлось использовать язык который не поддерживает goto, то никуда не денешься, пришлось бы оставить кривоту кода. Код без goto был украшен подпорками по самое не хочу, и при внесении изменений кода там был бы кошмар потому что пришлось бы отслеживать не только логику кода, но и логику как выполнить goto без goto. полностью согласен с ну_я. Я смотрю, в большинстве народ, прочитав coding convetions, почему-то запоминают помечание "не следует, там где можно обойтись без.." как "нельзя ни в коем случае". Причем из соглашений по коду они запоминают в основном только это правило и могут при случае развести теорию на целую книгу "Чем опасен гоу-ту и как с ним бороться". А на практике у таких чувачков получается иногда не читаемый код, именно потому- что всеми спосбами стараются соблюсти это неписанное правило забывая про другие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 17:31 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
В борьбе за чистоту кода было создано целое направление. "Функциональное программирование". Оно проповедует в частности отказ от оператора присвоения "=". Из языков могу отметить: - Haskell (Hugs) - Eiffell - Caml - Erlang У Haskell есть довольно неплохой компиллятор со средой. ( Кому интересно - могу дать ссылки). Erlang - уже много лет используется фирмой Ericson для управления процессами в сетях мобильной связи. Причем с мощным параллелизмом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 17:42 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
maytonВ борьбе за чистоту кода было создано целое направление. "Функциональное программирование". Оно проповедует в частности отказ от оператора присвоения "=". Из языков могу отметить: - Haskell (Hugs) - Eiffell - Caml - Erlang У Haskell есть довольно неплохой компиллятор со средой. ( Кому интересно - могу дать ссылки). Erlang - уже много лет используется фирмой Ericson для управления процессами в сетях мобильной связи. Причем с мощным параллелизмом. Киньте ссылкой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 18:19 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
2 Lelikk Щас при себе нету. Завтра скину ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 19:02 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
автор int a[..][..][..]; // инициализация трехмерного вектора A bool iscondition=false; for(int i=0;i<10;i++) { for(int j=0;j<10;j++) { for(int k=0;k<10;k++) { if (condition(a [j][k])){ iscondition=true; break; } } if (iscondition) break; } if (iscondition) break; } Вот я с самого начала написал, что если стараться обходиться без goto, то структура программы будет лучше укладываться в голове, что способствует повышению мастерства программирования. Вышеприведённый пример без goto можно было бы написать так: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 19:28 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
Partisan M Вот я с самого начала написал, что если стараться обходиться без goto, то структура программы будет лучше укладываться в голове, что способствует повышению мастерства программирования. Вышеприведённый пример без goto можно было бы написать так: Код: plaintext 1. 2. 3. 4. 5. Вы считаете таким уж хорошим выходом из за одного перехода тормозить циклы столькими баластными условиями? Все-таки goto здесь читается лучше! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 20:55 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
Ну что же господа! Большая половина не имеет ничего против гоуту. Он есть и никто не заставляет его пихать в код. Да здравствует ГоуТу. Очень важный и полезный инструмент. Его нужно применять с головой и тогда все будет ок. Мне непонятны потуги противников этого оператора. Что пытаетесь доказать то? Единственный момент плох , когда очень часто на одном участке используется помногу Goto , а в других моментах не надо лисапеды изобретать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 21:29 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
Его нужно применять с головой и тогда все будет ок. ну я попытался объяснить, но хотя с одной стороны из меня учитель не лучший, но с другой стороны, некоторых легче пристрелить, чем научить. К счтастью, программисты нужны всякие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 21:35 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
Безусловный переход - великолепное, мощьное, красивое средство. В языках типа бейсика Дело в том, что программист, разбираясь в вашем коде не сделает безусловный переход так-же хорошо, как откомпиленная прога ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 23:19 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
Lelikk[quot mayton - Haskell (Hugs) - Eiffell - Caml - Erlang У Haskell есть довольно неплохой компиллятор со средой. ( Кому интересно - могу дать ссылки). Erlang - уже много лет используется фирмой Ericson для управления процессами в сетях мобильной связи. Причем с мощным параллелизмом. Киньте ссылкой[/quot] К функциональным языкам примыкают языки спецификаций вот можно глянуть http://www.cs.concordia.ca/~alagar/ ссылка на RSL Group http://www.iist.unu.edu/raise/ RSL на русском http://www.ergeal.ru/txt/archive/cs/rsl/index.htm http://www.ispras.ru/~RedVerst/RedVerst/Lectures%20and%20training%20courses/MSU%20course%20Formal%20specification%20of%20software/RMain.html пролог типа тоже без гоуто ))))))))))))))))))))))))))))))))))))) http://www.softcraft.ru/paradigm/dp/dp06-05.shtml ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 01:32 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
Дайте и мне шашкой помахать :) ЛёликкК вопросу о элегантности: действительно ли goto хуже, чем куча флагов в тройном цикле? Тем более, что чем больше на цикле условий, тем медленне он. Лучше уж один понятный goto. Согласен. Заметьте, "тем медленне он". Вопрос надо ставить так: чего хотите? Скорости или читабельности? Если о скорости нет речи - лучше без гото во вложенных циклах. Если нужна скорость. Гото, статические переменные в локальных областях видимости, прямые джампы на приращённые на загрузку из стека указатели функций, вообще отказ от функций из-за загрузки стека - код ваш будет ужастным по виду, зато всё будет летать и никто вас не догонит :) И ещё.То, что не отвалилось в процессе эволюции - нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 09:56 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
VidmakCase JibSkeartпомню , раньше тоже юзал goto на паскале немножко , потом приходилось пользоваться на ассемблере , ну там уже никуда без него . Ну я бы не согласился с мнением "никуда без него". О! Вот помню где надо - это загрузочный сектор дискеты... Там первая JMP стоит, которая перепрыгиват через данные о дискетке на код Ну да , просто я не так выразился , я хотел сказать , что чаше всего я наверное им там пользовался . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 10:19 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
SarinБезусловный переход - великолепное, мощьное, красивое средство. В языках типа бейсика Дело в том, что программист, разбираясь в вашем коде не сделает безусловный переход так-же хорошо, как откомпиленная прога Видимо это плохой программист Мне например все равно, написан код с goto или без. И раз он все еще существует, занчит он нужен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 10:52 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
А если у тебя строчек так тысяч пять - шесть? goto, ИМХО, используется потому, что это фактически asm без никто :) Ну типа JMP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 13:32 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
А я goto никогда не использовал. Не потому, что я его не люблю. Просто необходимости небыло. Кстати, интересно, а кокой код быстрее будет: Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 13:35 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
2 Lelikk Обещал ссылки... Вот. Haskell http://haskell.org - сайт разработчиков http://haskell.readscheme.org/ http://www.cs.nott.ac.uk - много статей по ФП http://www.absoluteastronomy.com/encyclopedia/H/Ha/Haskell_programming_language.htm http://www.willamette.edu/~fruehr/haskell/evolution.html Собственно среда с языком у меня есть (hugs98-Nov2003-2.msi) но к сожалению не могу найти, откуда я ее качал. Но если у вас достаточно толстый почтовый канал - то могу отправить по мылу (8Mb). Caml http://merjis.com/developers/ocaml_tutorial F# http://research.microsoft.com/projects/ilx/fsharp.aspx - Функциональный язык с компиллером под платформу .Net http://blogs.msdn.com/dsyme/archive/2005/03/07/388489.aspx P.S. Ищу транслятор Eiffel. Пока не смог нигде выкачать для Windows. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 13:37 |
|
||
|
Чем плох безусловный переход??
|
|||
|---|---|---|---|
|
#18+
Partisan M Вот я с самого начала написал, что если стараться обходиться без goto, то структура программы будет лучше укладываться в голове, что способствует повышению мастерства программирования. Вышеприведённый пример без goto можно было бы написать так: Код: plaintext 1. 2. 3. 4. Хм.. ну я говорил в одном из своих постов что перенос проверки условия в выражение for ничего не меняет. По прежнему, условие выхода из цикла "распылено" по всему исходнику. И сопровождать такой код - геморрой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 13:43 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=32964478&tid=1347709]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
134ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 277ms |
| total: | 529ms |

| 0 / 0 |
