
Indo direto ao ponto:
While: Executa o loop enquanto a condição for verdadeira.
Do While: Executa o loop primeiro e depois verifica a condição.
Imagina o seguinte cenário, onde temos uma flag: Em programação utilizamos flags como interruptor (isto é, valores 1/0, ligado/desligado, ativo/inativo), verificações rápidas e simples.
Se o usuário no banco de dados está com o status 0 ele é inativo e não pode executar determinada tarefa na aplicação e o usuário com status 1 é ativo e executar tal tarefa.
Dentro do while fica a nossa tarefa; Agora vamos ver o resultado disso utilizando os dois métodos.
WHILE
<p id="demo"></p>
<script>
let text = "";
let i = 1;
while (i < 1) {
text += i++;
}
document.getElementById("demo").innerHTML = text;
</script>
Não será exibido nada no paragrafo.
No nosso exemplo acima, em um determinado momento o usuário foi setado para 1 na variável que é utilizada no teste do while, a saida não vai apresentar nada, pois o teste foi feito antes de entrar no while e como não passou no teste o while não recebeu o valor passado.
DO WHILE
<p id="demo"></p>
<script>
let text = "";
let i = 1;
do {
text += i++;
}
while (i < 1);
document.getElementById("demo").innerHTML = text;
</script>
Será exibido o valor 1 no paragrafo.
Agora o nosso exemplo com do while, será executado o código dentro do while para depois verificar se a condição é 0 ou 1, sendo que a condição já foi setada anteriormente como 1.
Se você não souber quantas interaçãoes terá, utilize o while.
Se você tem uma quantidade bem definida e por algum motivo você precise que seja executado ao menos uma vez, mesmo que a condição seja verdadeira, utilize o do while.
Não se tem uma receita de bolo para utilização de um ou outro, tudo vai depender da lógica da sua aplicação, a intenção do post é perceber que temos que testar com outras opções para verificar como isso afeta a lógica para melhor ou para pior, depende do que você está fazendo.