Избегайте циклов do/while
Цикл do/while
опасен в принципе, так как вы обязательно выполняете его тело хотя бы один раз. Следовательно, вы должны проверить условия завершения до входа в этот цикл. Я часто вижу код, похожий на следующий:
if( !проверить_нечто )
return ERROR;
do
{
начинка();
} while( проверить_нечто );
Вам гораздо лучше сделать так:
while( проверить_нечто )
начинка();
Похожий случай:
if( некое_условие() )
do
// масса материала
while( некое_условие() другой_материал() );
легче трактовать следующим образом:
while( некое_условие() )
{
// масса материала
if( !другой_материал() )
break;
}
Я профессионально занимаюсь программированием с 1979 года и за это время использовал цикл do/while всего два раза.