Оператор цикла do-whileуправляющий оператор языка Си, реализующий выполнение цикла-до в алгоритме.
Синтаксис оператора цикла do-while определяется следующим образом:
do
    оператор
 while (выражение);
Рис. 1.  Блок-схема цикла do-while
Цикл do-while похож на цикл while за исключением того, что значение выражения проверяется после выполнения оператора. Поэтому тело цикла выполняется как минимум один раз. Если значение выражения истинно, тело цикла выполняется повторно, выражение вновь вычисляется и т.д., до тех пор пока значение выражения не станет ложным. Оператор может быть как простым, так и составным.
Пример 1
/*Печатать меню, пока не введен символ 'q'*/
. . .
do {
     printf ("\t Основное меню \n");
     printf ("d - Ввод данных \n");
     printf ("r - Вывод отчета\n");
     printf ("q - Выход\n");
     scanf ("%c", &choice);
     if (choice == 'd')
        getdata();
     else
        if (choice == 'r')
           report();
        else
           if (choice != 'q')
              printf("Неверный ввод. Попробуйте еще раз.\n");
     while (getchar() != '\n')
       ; /* Удаление оставшихся символов */
    }
while (choice != 'q');