А я с вами не согласен.

Вспомогательный флаг = программист не справился с управлением.

В подобных случаях стараюсь свести кканонической форме линейного поиска(даже ценой введения процедур):
## Код:
```
IF C0(...) THEN
  A0(...)
ELSIF C1(...) THEN
  A1(...)
ELSIF C2(...) THEN
  A2(...)
ELSE
  ...
END
```
Любой ветвистый if-овый код может (и должен) быть сведён к этой канонической форме.