Когда следует использовать do-while вместо циклов?

Возможные дубликаты:
Is there ever a need for a "do {…} while ( )" loop?
Проведите тест на петлях вверху или внизу? В то время как vs. Do While
Когда подходит?

У меня были философские дебаты с коллегой относительно того, как в общем случае в C/С++ мы должны использовать циклы while, а не do-wile.

Я чувствую, что единственный раз, когда вы должны использовать do-while, вам нужно многократно тестировать одно и то же, и вы всегда захотите сделать это хотя бы один раз. Обычно я всегда чувствовал, что цикл while более читабельен.

Я понимаю, что это можно рассматривать как нечто субъективное/личное, но мне было бы интересно услышать любые мысли о том, правильно ли я что-то здесь или что-то здесь делаю. Особенно приветствуются конкретные примеры.