История изменений
Исправление alysnix, (текущая версия) :
а в чем «преимущество»??
вы ясночитаемый код превратили в две функции(зачем тут лишняя функция?), причем количество параметров функции handle по сути ничем не ограничено, это зависит от исходной сложности задачи(может там 100 ресурсов возникает? и их надо передать в handle)..
вы положили на инкапсуляцию - зачем вытаскивать из исходной функции реализацию наружу?
вы не показали общее решение - а если таких блоков(которые надо завершить нетривиально) внутри функции много?
то есть вы показали решение для частного случая, простейшего, который я привел, в надежде, что читатель сможет усилить пример самостоятельно.
вам нужен пример функции, где таких блоков с нетривиальным завершением например 5-10, часть из них вложенные, и семантика там сложная(чтобы список параметров ваших handle медом не казался).
а на вопрос - ну и зачем писать всю запутанную эту мутоту? - ответ только один… а чтобы удовлетворить формальному, неизвестно откуда взятому правилу, что goto это плохо…
да выкиньте вы это правило в помойку. goto хорошо, когда оно помогает компактности и читаемости кода.
Исходная версия alysnix, :
а в чем «преимущество»??
вы ясночитаемый код превратили в две функции(зачем тут вообще лищняя функция?), причем количество параметров функции handle по сути ничем не ограничено, это зависит от исходной сложности задачи(может там 100 ресурсов возникает? и их надо передать в handle)..
вы положили на инкапсуляцию - зачем вообще вытаскивать из исходной функции реализацию наружу?
вы не показали общее решение - а если таких блоков(которые надо завершить нетривиально) внутри функции много?
то есть вы показали решение для частного случая, простейшего, который я привел, в надежде, что читатель сможет усилить пример самостоятельно.
вам нужен пример функции, где таких блоков с нетривиальным завершением например 5-10, часть из них вложенные, и семантика там сложная(чтобы список параметров ваших handle медом не казался).
а на вопрос - ну и зачем писать всю запутанную эту мутоту? - ответ только один… а чтобы удовлетворить формальному, неизвестно откуда взятому правилу, что goto это плохо…
да выкиньте вы это правило в помойку. goto хорошо, когда оно помогает компактности и читаемости кода.