Правила программирования на С и С++. Главы 1-6
Страница 67. Избегайте циклов do/while


 

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) в начале цикла.

 
« Предыдущая статья