1) Оператор do while выполняется пока условие в операторе while не станет ложным (false).
2) Гарантируется хотя бы одно выполнение выражений в теле оператора do, даже если условие в операторе while всегда ложное.
int i = 2;
do { // Обязательно выполняется хотя бы раз
printf("i = %d \n", i);
i--;
} while (i > 0); // Если выполняется условие - выполняется do