Я использовал это соглашение в течение многих лет! Это наиболее полезно, когда у вас есть «конвейер» обработки и / или условных проверок. Он просто избегает нескольких уровней вложенных операторов if () и, таким образом, делает код (намного) более удобным для чтения. Да, есть альтернативы, такие как try / catch, и я использую этот стиль только в определенных тонких / низкоуровневых ситуациях.
Я запускаю «цикл» (на самом деле никогда не циклы) с комментарием вроде ...
// Error loop (never loops)
Цикл ошибки ...
set errorCode = fail;
do {
if (this)
break;
if (that)
break;
// Success
set errorCode = ok;
// Alternative Success
errorCode = doWhatever();
} while (false);
Рассмотрите этот стиль, если у вас есть куча вложенных операторов if () и ваши отступы имеют глубину более 3-х уровней.
Я использовал это соглашение в Perl, C / C ++, Java и Delphi / Pascal.