フローチャートの繰り返し図形とは?前判定・後判定とループ端を解説

フローチャートで繰り返しを書くとき、「どの図形を使えばよいのか」で迷うことがあります。結論から言うと、繰り返しはひし形の条件判定で表す方法と、ループ端記号で繰り返しの範囲を示す方法があります。

この記事では、前判定、後判定、ループ端記号の違いを整理します。さらに、条件や回数を変えながら、どの流れが何回実行されるのかを動かして確認します。

フローチャートの繰り返し図形とは

繰り返し処理には、必ず「続けるか、終わるか」を判断する条件があります。そのため、もっとも基本的な書き方では、条件判定を表すひし形を使います。

一方で、同じ処理の範囲が長くなる場合や、「ここからここまでを繰り返す」と示したい場合は、ループ端記号を使うことがあります。ループ端記号は、繰り返しの開始位置と終了位置を対応させるための図形です。

前判定と後判定の違い

繰り返しには、大きく分けて前判定と後判定があります。違いは、処理を行う前に条件を確認するか、処理を行った後に条件を確認するかです。

種類条件を確認する位置特徴
前判定処理の前条件を満たさなければ一度も実行されない在庫がある間だけ出荷する
後判定処理の後最低1回は実行される入力してから正しいか確認する

ループ端は、前判定・後判定と同じ分類ではありません。前判定か後判定かは「条件をいつ確認するか」の違いで、ループ端は「繰り返しの範囲をどの図形で表すか」の違いです。

動かして理解する前判定・後判定・ループ端

ループ端を使う場合は、上側の図形が繰り返しの開始位置、下側の図形が繰り返しの終了位置を表します。前判定では上側のループ端に条件を書き、後判定では下側のループ端に条件を書きます。ループ端は条件判定をなくすための図形ではなく、繰り返す範囲を読みやすくするための図形です。

下の画面では、前判定、後判定、ループ端の3種類を切り替えられます。開始値、終了値、増減幅を変えると、処理が何回実行されるかが変わります。まず結果を予想してから実行してください。

条件と予想を変える

前判定は先に条件を確認します。後判定は先に処理を1回実行します。ループ端を使う場合、前判定は開始端に条件を書き、後判定は終了端に条件を書きます。

現在の値: 0
開始 値と条件を読む 終了値未満? はい 1増やす 条件確認へ戻る いいえ 結果を表示 開始 値と条件を読む 1増やす 終了値未満? はい 処理へ戻る いいえ 結果を表示 開始 値と条件を読む 現在値 < 終了値 1増やす 繰り返し終了 結果を表示 開始 値と条件を読む 繰り返し開始 1増やす 現在値 < 終了値 結果を表示

前判定は一度も実行されないことがある

前判定では、最初に条件を確認します。たとえば「現在値が終了値未満の間、1増やす」という流れで、開始値がすでに終了値以上なら、処理は一度も実行されません。

この性質は、処理を始める前に条件を満たしているか確認したい場面に向いています。たとえば「在庫がある間だけ出荷する」「未処理のデータがある間だけ処理する」といった流れです。

後判定は最低1回は実行される

後判定では、先に処理を行ってから条件を確認します。そのため、条件の結果にかかわらず、処理は最低1回実行されます。

たとえば「パスワードを入力する」「入力内容を確認する」という流れでは、確認より先に入力が必要です。このように、まず1回処理してから続けるか判断する場面では、後判定の考え方が合います。

ループ端記号は繰り返しの範囲を見せる図形

ループ端記号は、繰り返しの開始と終了を示す図形です。条件判定そのものをなくすための図形ではなく、「どこからどこまでを繰り返すのか」を読みやすくするために使います。

ループ端記号で前判定を書く場合は、上側のループ端に継続条件を書きます。後判定を書く場合は、下側のループ端に継続条件を書きます。条件を書く位置によって、処理の前に判断するのか、処理の後に判断するのかが変わります。

処理が短い場合は、ひし形の条件判定だけでも十分です。処理の数が増えて、戻り矢印だけでは読みづらくなる場合は、ループ端記号を使うと構造を把握しやすくなります。

JavaScriptで見る前判定と後判定

前判定の例

let count = 0;
const limit = 3;

while (count < limit) {
  count = count + 1;
}

後判定の例

let count = 0;
const limit = 3;

do {
  count = count + 1;
} while (count < limit);

前判定は、条件を満たす場合だけ処理します。後判定は、先に処理を1回行ってから、続けるかどうかを確認します。この違いを意識すると、フローチャートの矢印の戻し方も理解しやすくなります。

Pythonで見る前判定

count = 0
limit = 3

while count < limit:
    count = count + 1

PythonにはJavaScriptの do...while に相当する構文はありません。後判定に近い流れを書きたい場合は、先に処理を書き、その後で break するかどうかを判断します。

よくある間違い

  • 繰り返し専用の図形だけで条件判定も表せると思ってしまう
  • 前判定なのに、処理を先に書いてしまう
  • 後判定なのに、最初に条件を書いてしまう
  • 戻り矢印の先が条件判定ではなく、途中の処理になっている
  • 終了条件を書かず、終わらない流れになっている

関連記事でさらに学ぶ

フローチャート全体の基本は、動かしてわかるフローチャート入門で確認できます。繰り返しの条件式や回数を詳しく確認したい場合は、フローチャートの繰り返しとは?while文とループを動かして理解するも参考になります。

まとめ

フローチャートの繰り返しは、ひし形の条件判定で表す方法と、ループ端記号で範囲を示す方法があります。前判定は処理の前に条件を確認し、後判定は処理の後に条件を確認します。

図形の名前だけを覚えるよりも、「条件をいつ確認するのか」「どこへ戻るのか」「何回実行されるのか」を考えることが大切です。前判定、後判定、ループ端の違いを動かして確認すると、繰り返し処理の流れを実感しやすくなります。

シェアする