Prueba de bucles en la parte superior o inferior? (while vs. do while) [cerrado]

Cuando estaba tomando CS en la universidad (mediados de los 80), una de las ideas que se repetía constantemente era escribir siempre bucles que prueban en la parte superior (mientras ...) en lugar de en la parte inferior (hacer ... mientras) lazo. Estas nociones a menudo estaban respaldadas con referencias a estudios que mostraban que los bucles que se probaron en la parte superior tenían muchas más probabilidades de ser estadísticamente correctos que sus contrapartes de pruebas inferiores.

Como resultado, casi siempre escribo bucles que prueban en la parte superior. No lo hago si introduce una complejidad adicional en el código, pero ese caso parece raro. Noté que algunos programadores tienden a escribir casi exclusivamente bucles que prueban en la parte inferior. Cuando veo construcciones como:

if (condition)
{
    do
    {
       ...
    } while (same condition);
}

o el inverso (if dentro dewhile), me hace preguntarme si realmente lo escribieron de esa manera o si agregaron elif declaración cuando se dieron cuenta de que el bucle no manejaba el caso nulo.

He buscado en Google, pero no he podido encontrar ninguna literatura sobre este tema. ¿Cómo escriben ustedes (y chicas) sus bucles?