Правила программирования на С и С++. Главы 1-6 - Избегайте циклов do/while
ОГЛАВЛЕНИЕ
Страница 67 из 93
60. Избегайте циклов do/while.
Цикл do/while опасен в принципе, так как вы обязательно выполняете его тело хотя бы один раз. Следовательно, вы должны проверить условия завершения до входа в этот цикл. Я часто вижу код, похожий на следующий:
if ( !проверить_нечто )return ERROR;
do
{
начинка();
} while ( проверить_нечто );
Вам гораздо лучше сделать так: while ( проверить_нечто )начинка();
Похожий случай: if ( некое_условие() )do
// масса материала
while ( некое_условие() ?? другой_материал() );
легче трактовать следующим образом: while ( некое_условие() ){
// масса материала
if ( !другой_материал() )
break;}Я профессионально занимаюсь программированием с 1979 года и за это время использовал цикл do/while всего два раза.60.1. Никогда не используйте do/while для бесконечного цикла.
Код, похожий на следующий:
do{
// здесь следует несколько страниц кода
while ( 1 );
просто заставляет сопровождающего программиста шарить по листингу взглядом, ища while, вместо того, чтобы найти его сразу в случае расположения оператор while (1) в начале цикла.