неоптимизированный вариант
После ротации ветвлений наш код будет выглядеть так:
// дублируем операторы цикла, расположенные до break
printf("1й оператор цикла\n");
a--;
// а должен ли вообще выполнятся остаток цикла?
if (a>
=0)
{
a++;
do
{
// после трансформации второй оператор стал первым…
printf("2й оператор\n");
// …а первый оператор — вторым
printf("1й оператор цикла\n");
} while(–-a<0);
// сюда попало условие из if - break
}