プログラミングを勉強していると、「フローチャート」という言葉が登場します。
「フローチャートって何?」「ひし形や四角形にはどんな意味があるの?」「どうやって書けばいいの?」と疑問に思っている人も多いのではないでしょうか。
フローチャートとは、プログラムや作業の処理手順を、図形と矢印で表した図 のことです。日本語では「流れ図」とも呼ばれます。
この記事では、高校の情報Ⅰを学習する人やプログラミング初心者に向けて、フローチャートの基本記号、書き方、条件分岐や繰り返し処理の表現方法をPythonのコードとともに解説します。
1. フローチャートとは?
フローチャートとは、処理の順番や条件による分岐を図形と矢印で視覚的に表したものです。
例えば、2つの数字を足して結果を表示するプログラムを考えてみましょう。
プログラミングを勉強していると、「フローチャート」という言葉が登場します。
「フローチャートって何?」「ひし形や四角形にはどんな意味があるの?」「どうやって書けばいいの?」と疑問に思っている人も多いのではないでしょうか。
フローチャートとは、プログラムや作業の処理手順を、図形と矢印で表した図 のことです。日本語では「流れ図」とも呼ばれます。
この記事では、高校の情報Ⅰを学習する人やプログラミング初心者に向けて、フローチャートの基本記号、書き方、条件分岐や繰り返し処理の表現方法をPythonのコードとともに解説します。
フローチャートの基本例

このように図にすると、プログラムがどのような順番で実行されるのかを、コードを読まずに把握しやすくなります。
2. フローチャートを使う目的
フローチャートには、主に3つの目的があります。
- プログラムを作成する前に、処理の流れを整理する。
- 条件分岐や繰り返し処理の仕組みを視覚的に確認する。
- 他の人に、プログラムや業務の処理手順を説明する。
例えば、ゲームで「プレイヤーのHPが0になったらゲームオーバー」という仕組みを作る場合、先に図を描くことで、どの時点でHPを確認し、どの処理へ進むのかを整理できます。
3. フローチャートの基本記号一覧
フローチャートでは、処理の種類に応じて異なる図形を使用します。
| 記号 | 名前 | 意味・使い方 | Pythonでの例 |
|---|---|---|---|
| 端子重要 | 処理の開始と終了を表す。フローチャートの最初と最後に必ず1つずつ置く。 | プログラムの始まり・終わり | |
| 処理重要 | 計算や代入など、何かを実行する手順を表す。もっともよく使う記号。 | total = price * 2 |
|
| 判断重要 | 条件によって進む道が分かれる(条件分岐)。出口の矢印に「Yes/No」などを書く。 | if score >= 60: |
|
| データ(入出力) | データの入力や出力を表す。キーボードからの入力や画面表示など。 | input() / print() |
|
| ループ端 | 繰り返しの始まり(上)と終わり(下)をペアで表す。始端に繰り返しの条件を書く。 | for i in range(5):while n < 10: |
|
| 定義済み処理 | 別の場所で定義したひとまとまりの処理(関数・サブルーチン)を呼び出す。 | result = calc(a, b) |
|
| 線(流れ線) | 処理の流れをつなぐ。上から下、左から右が基本で、逆向きのときは矢印をつける。 | 処理の実行順 | |
| 結合子 | 図が長くなったときやページをまたぐときに、線の続きを示す。同じ記号(AとAなど)同士がつながる。 | — |
特に、開始・終了、処理、判断の3つは、基本的なフローチャートを読み書きするうえで重要です。
4. フローチャートの3つの基本構造
プログラムの基本的な処理の流れは、主に「順次」「選択」「反復」の3つに分けられます。

この3つの基本構造を組み合わせることで、さまざまなプログラムの処理手順を表現できます。
5. 順次処理のフローチャートの書き方
順次処理とは、処理を上から順番に実行することです。
例えば、商品の単価と数量から合計金額を求める場合を考えてみましょう。
price = 100
quantity = 3
total = price * quantity
print(total)
実行結果:
300
これをフローチャートで表すと、次のようになります。

このように、実行する処理を順番に並べるだけなので、初心者にも理解しやすい構造です。
6. 条件分岐のフローチャートの書き方
条件分岐とは、条件が成立するかどうかによって、実行する処理を変える仕組みです。
例えば、テストの点数が60点以上なら「合格」、60点未満なら「不合格」と表示するプログラムを作ってみましょう。
score = 75
if score >= 60:
print("合格")
else:
print("不合格")
実行結果:
合格
フローチャートでは、条件を判断する部分にひし形を使用します。

この例では、75点は60点以上なので、「はい」の方向に進みます。
プログラミングのif文と、フローチャートの判断記号は対応していると考えると理解しやすくなります。
7. 繰り返し処理のフローチャートの書き方
繰り返し処理とは、同じ処理を何度も実行する仕組みです。
例えば、1から5までの数字を順番に表示するプログラムを考えます。
for i in range(1, 6):
print(i)
実行結果:
1
2
3
4
5
フローチャートで表す場合は、繰り返しの条件をひし形に記述し、処理が終わった後に条件を確認する位置へ矢印を戻します。

この図では、最初に i に1を入れます。
次に、i が5以下であれば数字を表示し、i に1を加算します。その後、再び条件を確認します。
i が6になった時点で条件が成立しなくなり、繰り返し処理が終了します。
このように、フローチャートでは矢印を使って繰り返しの流れを表現します。
8. フローチャートの書き方・作り方の5ステップ
実際にフローチャートを作成する場合は、次の順番で考えると整理しやすくなります。
- プログラムの目的を明確にする例えば、「3人のテストの平均点を求める」など、何を実現したいのかを決めます。
- 必要な入力と出力を決める何のデータを受け取り、どのような結果を表示するのかを整理します。
- 処理を順番に書き出すデータの取得、計算、条件の確認、結果の表示など、必要な処理を洗い出します。
- 処理に対応する図形を配置する計算には長方形、判断にはひし形など、処理の種類に合わせて記号を選びます。
- 矢印をつなぎ、動作を確認する開始から終了まで処理をたどり、分岐の行き先や繰り返しの終了条件に問題がないか確認します。
9. フローチャートでよくある間違い
フローチャートを書く際は、次の3点に注意しましょう。
条件分岐の行き先が分からない
ひし形から2つの矢印を出す場合、「はい」「いいえ」などのラベルを付けると処理が分かりやすくなります。
繰り返し処理が終了しない
例えば、i が5以下の間、処理を繰り返す場合、i を増やさなければ無限ループになる可能性があります。
繰り返し処理を設計するときは、どのような条件で終了するのかを確認しましょう。
矢印が複雑に交差している
矢印が何本も交差していると、処理の順番が分かりにくくなります。
基本的には上から下、左から右へ処理が進むように配置し、必要に応じて接続子を使用しましょう。
10. フローチャートを作成できる無料ツール
手書きのほかに、パソコンでフローチャートを作成できるツールもあります。
diagrams.net
図形をドラッグ&ドロップして配置できる無料の作図ツールです。フローチャートやシステム構成図などを作成できます。
diagrams.netを開く
Mermaid
テキストからフローチャートを生成できるツールです。プログラミングのように文字を入力して図を作成できます。
Mermaid Live Editorを開く
授業の課題では、まず手書きで図形と矢印の意味を理解し、慣れてきたら作図ツールを利用してみましょう。
11. 練習問題:フローチャートを読んでみよう
次の3つの問題に挑戦してみましょう。
問題1:フローチャートの基本記号
条件によって処理を分ける図形はどれでしょうか?
A. 長方形
B. ひし形
C. 楕円形
解答を見る
正解:B. ひし形
ひし形は判断を表します。条件の結果によって処理を分岐させます。
問題2:条件分岐
scoreが70の場合、「score ≥ 60?」ではどちらに進むでしょうか?
A. はい
B. いいえ
C. どちらにも進まない
解答を見る
正解:A. はい
70は60以上なので、条件が成立します。
問題3:繰り返し処理
i = 1から始め、「i ≤ 3」の間、iを表示してから1増やす場合、何回表示されるでしょうか?
A. 2回
B. 3回
C. 4回
解答を見る
正解:B. 3回
iが1、2、3のときに表示されます。4になると終了します。
12. まとめ
フローチャートとは、プログラムや作業の処理手順を図形と矢印で表したものです。
特に、次の3つの基本構造を覚えることが重要です。
- 順次: 処理を順番に実行する
- 選択: 条件によって実行する処理を変える
- 反復: 条件に応じて同じ処理を繰り返す
フローチャートを書くことで、プログラムを作成する前に処理の流れを整理でき、条件の間違いや無限ループなどの問題にも気付きやすくなります。
まずは簡単な計算や合否判定のプログラムをフローチャートで表現し、慣れてきたら繰り返し処理を含むプログラムにも挑戦してみましょう。

