Do-while文
分岐文
while文と同様、do-while文においてもbreak文などの分岐文を使用できる。なお、continue文はループの途中から、ループ本体の最後に飛び、do-while文の場合には条件の評価となる。
例
以下の、各言語によるdo-while文あるいは同様の制御を利用したプログラムは、与えられた数の階乗を計算する。
Ada
with Ada.Integer_Text_IO;procedure Factorial is
   Counter   : Integer := 5;
   Factorial : Integer := 1;begin
   loop
      Factorial := Factorial * Counter;
      Counter   := Counter - 1;
      exit when Counter = 0;
   end loop;

   Ada.Integer_Text_IO.Put(Factorial);end Main;
Visual Basic .NET
Dim counter As UInteger = 5Dim factorial as ULong = 1Do
  factorial *= counter ' multiply
  counter -= 1 ' decrementLoop While counter > 0System.Console.WriteLine(factorial)
C言語とC++
unsigned int counter = 5;unsigned long factorial = 1;do {
  factorial *= counter--; /* Multiply, then decrement. */} while (counter > 0);printf("%lu\n", factorial);
C#
uint counter = 5;ulong factorial = 1;do{
    factorial *= counter--;}while (counter > 0);System.Console.WriteLine(factorial);
D言語
uint counter = 5;ulong factorial = 1;do {
    factorial *= counter--;} while (counter > 0);writeln(factorial);
Java
int counter = 5;long factorial = 1;do {
  factorial *= counter--; // Multiply, then decrement.} while (counter > 0);System.out.println(factorial);
Pascal
program FactorialProgram;var
  counter, factorial: Integer;begin
  counter := 5;
  factorial := 1;

  repeat
    factorial := factorial * counter;
    counter := counter - 1;
  until counter = 0;

  Write(factorial);end.
C/C++のマクロにおける利用
C/C++におけるdo-while文の特殊な用法に、最後にセミコロンが付く構文であることを利用し、展開結果にブロックを含むマクロの呼出しを関数のように見えるものにする、というイディオムがある。
#if NDEBUG#define DEBUG_LOG(msg)#else#define DEBUG_LOG(msg) do { \  if (msg) { printf("%.*s\n", (int)strlen(msg), msg); } \} while (0)#endifvoid some_function(){
    DEBUG_LOG("debug message");}
これを利用することで、「セミコロンを付けてはいけないマクロ」という、扱いが面倒なものを作らずにすむ。