自動販売機で学ぶアルゴリズム|500円で考える繰り返し処理の基本
アルゴリズムは、特別なプログラムの中だけにあるものではありません。日常の行動を分解してみると、「手順を決める」「条件を確認する」「同じ処理を繰り返す」といった考え方が自然に含まれています。
この記事では、自動販売機で飲み物を買う場面を使って、繰り返し処理の基本を整理します。プログラミング初学者だけでなく、業務フローやRPA、データ処理の流れを考える人にも役立つ見方です。
今回のゴール
今回は、500円を使って、できるだけ多くの飲み物を買う流れを考えます。
- 500円で購入できるだけ飲み物を購入する
- 何本購入できるかを求める
- 最後にお釣りがいくら残るかを求める
前提条件
アルゴリズムを考えるときは、最初に前提条件をそろえることが重要です。条件があいまいなままだと、同じ手順を考えているつもりでも、人によって答えが変わってしまいます。
- 自動販売機では120円の飲み物だけを販売している
- 最初に500円を入れる
- お釣りは返却レバーを下げるまで出てこない
前提条件を明確にすると、処理の流れと終了条件を整理しやすくなります。
必要な処理を洗い出す
まず、自動販売機で飲み物を買うために必要な作業を並べます。
- 500円を入れる
- 飲み物を選ぶ
- 購入ボタンを押す
- 出てきた飲み物を取る
- 残金を確認する
- まだ買えるなら、もう一度購入する
- もう買えないなら、返却レバーを下げる
- お釣りを取る
ここで重要なのは、「残金を確認する」という処理です。残金が120円以上なら購入を続けられます。120円未満なら購入を終えて、お釣りを受け取ります。
実際の流れ
500円を入れたあと、120円の飲み物を買い続けると、次のような流れになります。
購入1回目
- 飲み物を選ぶ
- 購入ボタンを押す
- 飲み物を取り出す
- 残金を確認する:380円
- 120円以上残っているため、購入を続ける
購入2回目
- 飲み物を選ぶ
- 購入ボタンを押す
- 飲み物を取り出す
- 残金を確認する:260円
- 120円以上残っているため、購入を続ける
購入3回目
- 飲み物を選ぶ
- 購入ボタンを押す
- 飲み物を取り出す
- 残金を確認する:140円
- 120円以上残っているため、購入を続ける
購入4回目
- 飲み物を選ぶ
- 購入ボタンを押す
- 飲み物を取り出す
- 残金を確認する:20円
- 120円未満のため、購入を終了する
- 返却レバーを下げる
- お釣りを取る
結果は、120円の飲み物を4本購入し、お釣りは20円です。
繰り返し処理として見る
この例では、「飲み物を選ぶ」「購入ボタンを押す」「飲み物を取る」「残金を確認する」という処理を繰り返しています。
ただし、無限に繰り返すわけではありません。残金が120円以上なら続ける、120円未満なら終わる、という条件があります。
繰り返し処理では、同じ作業を並べるだけでなく、いつ続けて、いつ終わるのかを決める条件が必要です。
この考え方は、一覧データを1件ずつ処理する、在庫がある間だけ注文を受け付ける、未対応の問い合わせがなくなるまで対応する、といった業務にもそのまま応用できます。
フローチャートで確認する
今回の流れをフローチャートにすると、残金を確認して購入を続けるか終了するかを判断する形になります。

まとめ
自動販売機で飲み物を買うだけの例でも、アルゴリズムとして見ると、順番に処理する流れと、条件によって繰り返しを続ける流れが含まれています。
今回のポイントは、残金が120円以上かどうかを条件にして、購入を続けるか終了するかを判断することです。日常の行動をこのように分解すると、プログラミングや業務フローの基本が理解しやすくなります。
次の応用編では、飲み物の価格が複数ある場合を使って、条件分岐が増えたときの考え方を整理します。あわせて、自動販売機の応用編、フローチャートで繰り返しを書く方法、アルゴリズムの基本も確認してみてください。