Loops de teste na parte superior ou inferior? (while vs. do while) [fechado]

Quando eu estava cursando CS na faculdade (meados dos anos 80), uma das idéias que se repetia constantemente era escrever sempre loops que testam no topo (enquanto ...) em vez de na parte inferior (faça ... enquanto) do ciclo. Muitas vezes, essas noções eram apoiadas em referências a estudos que mostravam que os loops testados no topo eram estatisticamente muito mais propensos a serem corretos do que seus colegas de teste inferior.

Como resultado, quase sempre escrevo loops que são testados no topo. Não o faço se introduzir complexidade extra no código, mas esse caso parece raro. Percebo que alguns programadores tendem a escrever quase exclusivamente loops que são testados na parte inferior. Quando vejo construções como:

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

ou o inverso (if dentro dewhile), me faz pensar se eles realmente escreveram dessa maneira ou se adicionaram oif quando perceberam que o loop não tratava o caso nulo.

Eu pesquisei no Google, mas não consegui encontrar nenhuma literatura sobre esse assunto. Como vocês (e moças) escrevem seus loops?

questionAnswers(30)

yourAnswerToTheQuestion