Коли потік коду такий:
if(check())
{
...
...
if(check())
{
...
...
if(check())
{
...
...
}
}
}
Я зазвичай бачив цю роботу, щоб уникнути вищезгаданого брудного потоку коду:
do {
if(!check()) break;
...
...
if(!check()) break;
...
...
if(!check()) break;
...
...
} while(0);
Які кілька кращих способів уникнути цього обходу / злому, щоб він став кодом вищого рівня (галузевий)?
Будь-які пропозиції, які не вийшли з коробки, вітаються!
goto
- але я впевнений, що хтось відзначить мене за те, що він запропонував це, тому я не пишу відповіді на це. Мати довге do ... while(0);
здається невірною справою.
goto
, будьте чесні з цим і робіть це на відкритому повітрі, не ховайте цього, використовуючи break
іdo ... while
goto
реабілітаційні зусилля. :)