疑似コードでフローチャート

処理の流れを ifwhile の入れ子のまま文章で書くと、フローチャートを自動で描きます。図形をドラッグして並べる作業も、線を引き直す作業もありません。条件や処理の中身は日本語の自由文でよいので、設計レビューや業務フローの説明にそのまま使えます。

作業画面を開いてはじめる

書いたものと、出てくる図

// 「牛乳を買ってきて。卵があったら6個お願い」
// と言われたプログラマーの処理

店に着く;

if (卵がある) {
  for (6回くりかえす) {
    牛乳をかごに入れる;
  }
} else {
  牛乳を1本かごに入れる;
}

if (レジに並んでいる人が
    3人以上) {
  「また来ればいいか」;
  return;
}

会計する;
帰宅する;
「なんで牛乳が6本あるの?」;

上の図はこのページを開いたときに、左の疑似コードから生成しています(画像を貼っているのではありません)。文の途中の改行は、書き手が意図した折り返しとしてノードの中でも保たれます。

特徴

記法

キーワードは英語(ifwhile)で、その中身に書く文が日本語です。文の区切りは ;、ブロックの区切りは { } で、インデントは図に影響しません(見やすさのためだけに付けてかまいません)。

書き方説明
処理の内容;長方形(処理)中身は日本語の自由文。手数料(税込)を計算; のように括弧を含めてもかまいません。
if (条件) { } else { }ひし形(判断)Yes 側が真下、No 側が右に並びます。else if をつなげて書けます。else は省略できます。
while (条件) { }ひし形+帰還線前判定のループ。左を回り込む線で先頭に戻ります。
do { } while (条件);ひし形+帰還線後判定のループ。本体を必ず 1 回通ります。
for (全ての座席) { }ひし形+帰還線括弧の中は自由文です。i=0; i<n; i++ のような書式は要りません。
switch (区分) { case 一般: … }ひし形+多分岐case のラベルも自由文。default: は「その他」の枝になります。default を書かないときは、どれにも当たらない経路を自動で足します。
break; / continue;外側を回る線最も内側のループを抜ける/先頭へ戻る。breakswitch の中でも使えます。
return;角丸(終了の端子)その場に「終了」を置きます。長い線を引き回さないので、深い入れ子から抜けても図が読めます。
名前() { }別の図関数の定義。名前(); と書いた箇所が定義済み処理の記号になり、中身は続けて別の図として描かれます。
// メモ(図に出ません)コメント。行頭に書いたときだけコメントになります(https://example.com/ のような URL が消えないようにするため)。

区切り文字を文の中に書きたいとき

書きかけでも図が消えません

if ( まで打った状態のように文法として不完全なときも、解析できたところまで図を描き、足りないものを 1 件だけ知らせます。入力のたびに図が消えることはありません。