|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
beg-in-er, что-бы не разговаривать о сферичской лошаде в стратосфере, урезанный пример в студию, наглядно демонстрирующий, что без GOTO обойтись нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 12:27 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
МСУпример ..., в котором не обойтись без GOTO Я сам не сторонник GOTO, за столько лет у меня необходимости применения не было. break/continue/return как то вполне хватало :-) Но если без него всё сильно усложняется, почему бы не применить? Для C# в общем не особо актуально, но на PowerBuilder и T-SQL не так всё радужно но примеры привести можно: 1) анализ кучи условий, каждое из которых имеет смысл только после проверки предыдущего. делать без goto - это либо сильно увеличить вложенность условий, либо рассчитывать на неочевидные для каждого порядок анализа логического выражения компилятором. И в том и в другом случае неудобно. 2) как уже говорили, вложенные циклы. правда 10 таких циклов - это даже не говнокод. В циклах тоже можно обойтись без goto и даже никаких отдельных флагов для каждого цикла не нужно. Просто получится неудобно читать. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 13:14 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Arm79на неочевидные для каждого порядок анализа логического выражения компилятором. это о чём? Порядок вычисления либо не регламентирован, либо чётко задан (&& ||) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 13:54 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Что-то Лёня не просыпается, GOTO его любимая тема. Вчера видно совсем в гавнище домой пришел ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 14:19 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
МСУbeg-in-er, что-бы не разговаривать о сферичской лошаде в стратосфере, урезанный пример в студию, наглядно демонстрирующий, что без GOTO обойтись нельзя. ещё 40 лет была доказана теорема, что без можно написать любой метод без goto. любой, так что , ссылаясь на ту теорему, можно сказать нет такого кода , в котором нет альтернативы готу. вопрос в применимости. вот мой говнокодище н-летней давности. какой то промежуточный вариант. боевой, который пошёл в серию не нашёл. рекурсионно ищем контур гамильтона. выход из внутренного цикла должен быть именно таким. break. не годится. делать доп условие if - можно , но вредно. как минимум , когда ищем правильный алгоритм, готу надёжное подспорье. только что увлекаться макаронами не надо. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 14:26 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
ИзопропилArm79на неочевидные для каждого порядок анализа логического выражения компилятором. это о чём? Порядок вычисления либо не регламентирован, либо чётко задан (&& ||) (obj != null) || (obj.value = 5) если поменять местами, будет nullreference (при отсуствии obj) компилятор не вычисляет всё выражение, ему в данном случае достаточно понять, что obj = null и не вычислять дальнейшее ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 14:39 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Arm79bj != null) || (obj.value = 5) если поменять местами, будет nullreference (при отсуствии obj) компилятор не вычисляет всё выражение, ему в данном случае достаточно понять, что obj = null и не вычислять дальнейшее Именно. Семантика && и || задана в описании языка. От компилятора никак не зависит ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 14:45 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
beg-in-erвыход из внутренного цикла должен быть именно таким. break. не годится. делать доп условие if - можно , но вредно. Гавнокодище, конечно, редкостный. Во-первых, почему break не годится? Во-вторых, чем не устроил if? Видишь, ты сам уже знаешь ответ - как структурировать этот мусор. Причем твой метод превратится в нормальное удобоваримое чтиво. То, что мы видим сейчас - редкостное дерьмо, которое даже отрефаторить не представляется возможным. Глаза лезут на лоб от такого кода, хотя метод не большой. Вот и думай, что лучше, декомпозировать эту лапшу на составляющие, с линейным алгоритмом, или убивать себя об стену. Так это у тебя еще метод простецкий. Прикинь метод, который раз в 20-30 больше твоего, это же страх ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 14:52 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
ИзопропилИменно. Семантика && и || задана в описании языка. От компилятора никак не зависит Я вот пришел в свое время с делфей. Там при компиляции в настройках среды имеется галочка "вычислять полностью выражение" (не по умолчанию, правда). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 14:52 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Набор входных параметов, конечно, впечатляет int[,] matrix, int HAMILTON_CONTUR, ref int GLOBAL_MIN, int LEV, int Qi, List<int> TT, int left_tt, StreamWriter sw, string ss, int level, int Low, int Hi, int tt_level Всё в кучу, и int[,] тебе, и какие-то ref'ы, и List, и StreamWriter даже затесался. Это полный пецдец Друх, тут проблема не в гото, тут проблемы с головой Без обид. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 14:55 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
beg-in-er, Так будет демонстрация множественного наследования в .Net или нет?! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 15:12 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
МСУНабор входных параметов, конечно, впечатляет Друх, тут проблема не в гото, тут проблемы с головой Без обид. Глаза лезут на лоб от такого кода, хотя метод не большой. ну так это же отладочная реализация алгоритма там много чего лишнего. ( куда делся последыш не знаю, за годы оно исчезло). без этого говнокода неполучилось бы вылепить конфетку. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 15:40 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
beg-in-erбез этого говнокода неполучилось бы вылепить конфетку. Тогда я не понимаю, зачем ты вообще его запостил? :) Говнокод ничего не доказывает, кроме как принадлежность к гавнокоду. Показывай нормальный пример с goto. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 15:47 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
МСУТогда я не понимаю, зачем ты вообще его запостил? :) Говнокод ничего не доказывает, кроме как принадлежность к гавнокоду. Показывай нормальный пример с goto. ещё раз повторю, что без говнокода не получилось бы результата. говнокод на то и нужен , что бы найти правильный и конечный результат. и именно в нём готу был очень нужен. и не смотря на то , что в финальный релиз он не вошёл , goto сделал много для этого метода. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 15:56 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
beg-in-er, нафиг там гото не нужен был ты просто не знал что пишешь, потому первый "работающий" вариант тебя устроил ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 16:11 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Тот, кто не умеет правильно использовать GOTO - не достоин звания Программиста ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 16:43 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Cat2Тот, кто не умеет правильно использовать GOTO - не достоин звания Программиста значит без звания будет говнокодить программировать ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 17:06 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Cat2Тот, кто не умеет правильно использовать GOTO - не достоин звания Программиста В Кобол имелся оператор ALTER, который переназачал GOTO. Я как то обрадовавшись такой возможности написал очень красивую прогу :)(сделали тут же старшим инженером -матаематиком- программистом) месяц потом разбирались. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 17:16 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Cat2Тот, кто не умеет правильно использовать GOTO - не достоин звания ПрограммистаЯ, скажем, и не претендую. :) Буду так, без звания. И вообще, лучшее - враг хорошему. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 17:17 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
YUBACat2Тот, кто не умеет правильно использовать GOTO - не достоин звания ПрограммистаЯ, скажем, и не претендую. :) Буду так, без звания. И вообще, лучшее - враг хорошему. Ну и молодец. Я тоже так думаю. Это только МСУ постоянно борется за звание "Лучший по профессии". ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 17:56 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Cat2YUBAпропущено... Я, скажем, и не претендую. :) Буду так, без звания. И вообще, лучшее - враг хорошему. Ну и молодец. Я тоже так думаю. Это только МСУ постоянно борется за звание "Лучший по профессии". ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 18:14 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Cat2Ну и молодец. Я тоже так думаю. Это только МСУ постоянно борется за звание "Лучший по профессии".Если шо, у него и спросим, как надо. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 18:22 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
ViPRos, фортрановский вычисляемый GOTO - он тож ничё ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 19:00 |
|
|
start [/forum/topic.php?fid=20&msg=38097219&tid=1405414]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 339ms |
total: | 503ms |
0 / 0 |