История изменений
Исправление KennyMinigun, (текущая версия) :
Во такой подход рекомендуют инженеры эдоуби:
do {
if (! do_1())
break;
if (! do_2()
break;
/* ... */
} while (0);
cleanup();
Из плюсов: предсказуемость — после break контроль передается только *вниз* по коду. В С++ еще получаем приятную плюшку в виде вызова деструкторов у scope-local переменных.
Исходная версия KennyMinigun, :
Во такой подход рекомендуют инженеры эдоуби:
do {
if (! do_1())
break;
if (! do_2()
break;
/* ... */
} while (0);
clenup();
Из плюсов: предсказуемость — после break контроль передается только *вниз* по коду. В С++ еще получаем приятную плюшку в виде вызова деструкторов у scope-local переменных.