(do ((変数1 初期値1 ステップ1)
...
(変数m 初期値m ステップm))
(終了条件 式...式)
式1
...
式n)
(do ((変数1 初期値1 ステップ1)
(変数2 初期値2 ステップ2)
...
(変数2 初期値2 ステップ2))
(条件 出口 ...)
本文1
...
本文n)
(prog (変数1 変数2 ... 変数n)
(setq 変数1 初期値1)
(setq 変数2 初期値2)
...
(setq 変数n 初期値n)
(while ((not 条件)
(return (progn 出口 ...)))
本文1
...
本文n
(setq 変数1 ステップ1)
(setq 変数2 ステップ2)
...
(setq 変数n ステップn)))