|
49 / 25 / 2
Регистрация: 09.06.2008
Сообщений: 227
|
|
Выполнять определенные действия при любом выходе из функции25.09.2012, 23:24. Показов 4704. Ответов 41
Метки нет (Все метки)
Есть функция, в которой ряд ветвлений и return'ов... при этом хотелось бы при каждом return'е выполнять определенные действия (обнуление флагов, освобождение памяти и еще ряд операций).
Как такое грамотнее реализовать?
1
|
|
| 25.09.2012, 23:24 | |
|
Ответы с готовыми решениями:
41
Определенные действия при подключении флэшки Выполнять действия через определенные интервалы таймера |
|
|
||||||
| 27.09.2012, 00:50 | ||||||
Каюсь, погорячился - действительно байда с этим endloop. Тогда выкидываем его нафиг и пишем условие выхода из цикла на этапе проверки условия for. Получаем то же самое.
0
|
||||||
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
|||||||||||
| 27.09.2012, 01:04 | |||||||||||
|
Тоже не вариант.
1
|
|||||||||||
|
return (true);
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
|
||
| 27.09.2012, 08:16 | ||
|
0
|
||
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
|
| 27.09.2012, 08:42 | |
|
mimicria, мне стандарт языка предоставил возможность быстро прервать цикл в цикле (через goto). Ваш вариант замены одного goto на 10E6 условий, конечно является верхом крутости, остроумия и вам за него не стыдно.
1
|
|
|
49 / 25 / 2
Регистрация: 09.06.2008
Сообщений: 227
|
||||||||||
| 27.09.2012, 23:15 [ТС] | ||||||||||
|
Не по теме: Прошу прощения за столь "кровавый" топик... сам даже не ожидал...)) 2) Вот именно "выпрямлением рук" я и занимаюсь с вашей любезной помощью )P.S. Не по теме: Постарался наиболее просто и без лишнего представить мою функцию и понял, что А протокол чтения таков, что если в какой-то момент прочитали не ту информацию или чтение не прошло, то функция должна завершиться и вернуть false... Например такой пример:
1
|
||||||||||
|
return (true);
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
|
|||||||
| 28.09.2012, 09:48 | |||||||
0
|
|||||||
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
||
| 28.09.2012, 10:27 | ||
0
|
||
|
return (true);
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
|
||
| 28.09.2012, 10:33 | ||
|
0
|
||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|
| 28.09.2012, 11:03 | |
|
Господа, позвольте вас рассудить. Вы говорите об одном и том же, только в профиль.
mimicria, рассуждает с точки зрения "хорошего стиля программирования". Это бесспорно замечательно и красиво. Особенно, когда ты делаешь действительно громоздкие проекты, которые потом будут просматривать другие люди. А вот только когда не делаешь, весь хороший стиль программирования на фик не нужен. Пишешь там какую-нибудь лабораторную, - сдал ее и гори она огнем. Mimicria конечно скажет, что надо сразу все писать хорошо. Но это каждый сам решает для себя. Но у метода gumi250 есть один бесспорный плюс, который так и не нравится Mimicria - возможность выхода из функции в любом месте. Ведь если смотреть с другой стороны - ресурсы. Не нужно просчитывать, что находится после return.
1
|
|
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
||
| 28.09.2012, 14:06 | ||
1
|
||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||
| 28.09.2012, 14:45 | ||
|
2
|
||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 02.10.2012, 22:37 | ||
|
Во всем остальном с вами совершенно согласен.
2
|
||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 02.10.2012, 22:55 | |
|
Против таких приемов (goto и аналогичное) у меня только одно предостережение, - в случае с ассемблерным кодом такие переходы еще опаснее, особенно если программа сложная и емкая в понятии объема текста. Но там это все выверяется и, в конце концов, - ассемблер - это машинный язык, все на виду. А работая в среде Билдера, который при обработке так или иначе трактует текст программера, оптимизирует его, - рискованно делать этакие "заячьи петли", - можно нарваться..., или "черная дыра" в адресном пространстве, или еще чего похуже.
0
|
|
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
||
| 03.10.2012, 02:39 | ||
|
Как то мне было нужно написать одну сложную ф-цию, вроде все продумал написал. Начал отлаживать, естественно нашлись упущенные моменты (всего не предусмотришь). Начал править, но со скобками сразу не получалось поправить (при исправлении каждой ошибки переписывать всю ф-цию тоже не очень здорово), поэтому начал ставить goto (хотя бы на период отладки). Отладил вроде. И что теперь? Тут 2 варианта. 1-оставить рабочий код с goto, 2-все переделать возможно уменьшив число goto (и продолжить отладку ошибок появившихся уже после переписывания). Я сильно не заморачиваясь оставил как есть. Спустя некоторое время, мне нужно было еще дополнить эту ф-ция, и я использовал в ней goto. К чему это я. А к тому что одно дело теория, а другое дело практика. Конечно хочется красиво и без goto, но на практике, лично у меня, так не всегда получается. Готовы ли вы тратить дополнительное время на снижение числа goto? Лично я не всегда. Переписывать рабочий код с goto я точно не буду. Иногда мне с goto проще и быстрее. Но это абсолютно единичные случаи!!!
0
|
||
|
|
|
| 03.10.2012, 06:52 | |
|
Не по теме: gumi250, в твоей точке зрения мне непонятна лишь неприязнь к отступам и вложенности условий. На глаз не нравится или ручками править влом?:) nick42, а на что конкретно можно нарваться при оптимизации goto? Что за черная дыра?
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||
| 03.10.2012, 07:12 | ||
|
несколько ретурнов это нормально в одном вернуть одно значение в другом другое,разбить функции на подфункции Но все меняется когда сажусь за ассемблер(особенно для микроконтроллеров) там без джампов(сиречь гото) очень трудно
0
|
||
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
||||
| 03.10.2012, 13:30 | ||||
0
|
||||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|
| 03.10.2012, 19:15 | |
|
0
|
|
| 03.10.2012, 19:15 | |
|
Написать автотест, который будет выполнять определенные действия Как можно заставить программу выполнять определенные действия после нажатия клавиши ENTER При любом изменении содержимого richTextBox выполнять определенный код Определенные действия программы при разрыве сети Макрос, который будет выполнять определенные вычисления по базе данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|