Jest to pętla podobna do while, ale w odróżnieniu od niej wykonuje się przynajmniej raz; wyrażenie warunkowe jest bowiem położone na jej końcu. Stosujemy ją w sytuacjach, gdy nie znamy dokładnej liczby iteracji, ale pragniemy przynajmniej raz zrealizować instrukcje zawarte w jej ciele. Przykładowym programem dla dalszych rozważań niech będzie plik dowhile.c.
Program ten jest bardzo podobny do programu while.c, z wyjątkiem tego, że pętla tutaj rozpoczyna się od słowa kluczowego do, za którym pojawia się główna instancja pętli ujęta w klamry. Słowo kluczowe while wraz z wyrażeniem warunkowym pojawia się dopiero na końcu całej konstrukcji, która jest zakończona średnikiem.
Instrukcje w klamrach są powtarzane dopóty, dopóki warunek w nawiasach okrągłych jest spełniony. W przeciwnym wypadku wykonywanie pętli zostaje przerwane, a program przechodzi do instrukcji położonych bezpośrednio poniżej pętli.
Większość uwag dotyczących pętli while odnosi się również do konstrukcji do-while. Można więc zagnieżdżać pętle, tworzyć pętlę pustą i nigdy niekończącą, ale nie można tej pętli zbudować tak, aby się nigdy nie zrealizowała - pętla do-while zawsze wykonuje się przynajmniej raz. Jeśli istnieje tylko jedna instrukcja w ciele pętli, to nie trzeba umieszczać jej w klamrach.
Należy zwrócić uwagę na to, iż pomiędzy dwoma zastrzeżonymi słowami do i while musi wystąpić jakaś instrukcja (choćby i tzw. instrukcja pusta, czyli średnik). Dobrą zasadą niech będzie też umieszczanie polecenia while w tej samej linii, co klamra zamykająca ciało pętli. Będzie to dla nas sygnałem, że jest to część konstrukcji do-while, a nie początek nowej pętli while.