Никогда не используйте do/while для бесконечного цикла
Код, похожий на следующий:
do
{
// здесь следует несколько страниц кода
} while( 1 );
просто заставляет сопровождающего программиста шарить по листингу взглядом, ища while, вместо того, чтобы найти его сразу в случае расположения оператор while (1) в начале цикла.