プログラミング

フローチャートで簡単にループを抜ける方法!2つの図形と3つの判定

  • このエントリーをはてなブックマークに追加
  • LINEで送る

フローチャートは、なんとな~くわかってきたけど…

ループの抜け方がわからんゾ

『そもそもループの図形ってあるの?』

『終了条件は、どうやって書くの?』

このような疑問に答えます。


SEおっさん
SEおっさん
SE歴20年のオッサンが詳しく解説するぞい!

※保有資格:OracleMasterGold/JavaWebコンポーネントディベロッパ/応用情報技術者/簿記2級

フローチャートでループを抜ける方法!2つの図形と3つの判定

フローチャートでループの抜けたいときに使用する図形は2つあります。

それは『条件分岐の図形』と『ループの図形』です。

ループ終了条件を書ける図形
  1. ループの図形

    繰り返し処理を表現するループの図形(台形のような6角形)に、ループを抜ける終了条件を書きます


    ループの図形は開始と終了の図形があるよ♪
    (上下が逆さまなだけ)

  2. 条件分岐の図形

    条件分岐の図形(ひし形)にループの終了条件を書きます

    分岐条件にループの終了条件を書くっていう意味だよ♪

そもそも『フローチャートって何?』という方はこちらから

【記号は5つ】フローチャートの書き方【初心者向け簡単マニュアル】
【記号は5つ】フローチャートの書き方【初心者向け簡単マニュアル】
フローチャートを覚えたら、プログラムが理解できるようになります。 理解できるとプログラミング楽しくなるので、スキルアップが加速します。 スキルアップすると年収ア.....

 

そして、

『どのタイミングでループを抜ける判定を行うのか』がポイントになります。

ループの終了判定を行うタイミングは3つ!

前判定と後判定、そして中間判定です。

ループを抜ける判定方法
  1. 前判定

    繰り返し処理の最初に終了条件を書く

  2. 後判定

    繰り返し処理の最後に終了条件を書く

  3. 中間判定

    繰り返し処理の中に終了条件を書く

 

そもそも『条件分岐って何?』という方はこちらから

フローチャートでIf文を3分でマスター!複数分岐もヒシ型で判断♪
フローチャートでIf文を3分でマスター!複数分岐もヒシ型で判断♪
プログラムの基本は条件分岐です。 条件分岐の命令をif文といいます。   でも、うーん…   『if文がイマイチ良くわからん』 『複数分岐も.....

 

フローチャートでループを抜ける方法!ループ図形に終了条件を書く

ループ図形を使ってループの抜けるポイントは…

『ループ名』と『終了条件』を書くことです。

え、どゆこと?
たろちゃん
たろちゃん
SEおっさん
SEおっさん
まぁまぁ焦るでない。
詳しくを説明するぞい♪

ループ図形に終了条件を書いてループを抜ける手順

ループ図形に繰り返し処理を抜ける終了条件を書いてループを抜ける手順です。

  1. フローチャートのループ図形を書く

    フローチャートのループ図形は、こんな感じの6角形です。
    少し台形に似ています。

  2. ループ図形に『ループ名』を書いて繰り返し処理の範囲を決める

    ループ図形にループ名を書きます。

    ループ名を書くことで繰り返し処理の範囲が明確になるんです。

  3. ループ図形に終了条件を書いて処理を抜ける

    ループ図形に書いた『ループ名』の真下に『終了条件』を書きます。

    開始のループ図形と終了のループ図形がありますよね。

    終了条件を書く場所によって判定方法が異なるのです。

    • 前判定

      終了条件を開始のループ図形に書く

    • 後判定

      終了条件を終了のループ図形に書く

前判定と後判定の違いは?
たろちゃん
たろちゃん
SEおっさん
SEおっさん
良い質問じゃ!

次はループ図形を用いた「前判定ループ」と「後判定ループ」について詳しく説明いたします。

フローチャートを書くツールで迷ったときはコチラ

簡単なフローチャート作成方法3つ【無料ツール/エクセル/手書き】
簡単なフローチャート作成方法3つ【無料ツール/エクセル/手書き】
『フローチャート作成は何を使えば効率が良いだろう?』 『無料のフローチャート作成ツールって実際に使えるのかなぁ?』 『エクセルでもフローチャートは書けるのかな?.....

前判定ループとは

ループ内の繰り返し処理を実行する前に判定するのが、前判定です。

前判定のループはこんな感じ。

イマイチわかりにくいので焼き肉食べ放題で説明します!

満腹になるまで、焼き肉を食べ続けるループ処理です。

ループ名は『焼き肉食べ放題』
前判定の終了条件は『満腹になるまで』です。

 

ここがポイント!

前判定なので…
焼き肉食べ放題店に入ったものの、既に満腹だった場合は即終了

後判定ループとは

ループ内の繰り返し処理を実行した後に判定するのが、後判定です。

後判定のループはこんな感じ。

これまた、イマイチわかりにくいので焼き肉食べ放題で説明します!

満腹になるまで、焼き肉を食べ続けるループ処理です。

ループ名は『焼き肉食べ放題』
後判定の終了条件は『満腹になるまで』です。

なんかムズい
SEおっさん
SEおっさん
大丈夫じゃ!
終了条件である『満腹になるまで』は
前判定と同じじゃよ

ここがポイント!

後判定なので…
必ず1回は焼き肉を食べる!食べてから満腹だった場合は終了する

SEおっさん
SEおっさん
前判定と後判定の違いは
わかったかのぅ


スポンサーリンク

フローチャートでループを抜ける方法!条件図形に終了条件を書く

条件図(ヒシ形)に終了条件を書いて、ループ処理を抜ける方法もあります。

繰り返し処理はループ図形を使って表現できますが、矢印だけでも表現できます。

条件図に終了条件を書くやり方は、矢印を使って表現した場合にも有効です。

繰り返し処理を『ループ図形で表現したケース』と『矢印を使って表現したケース』それぞれで、条件図形に終了条件を書いてループを抜ける方法を説明します!

ループ図形+条件図形でループを抜ける方法

ループ図形に終了条件を書かずに、ループ処理内の条件分岐で終了判定する方法です。

例のごとく、焼き肉食べ放題を使って説明します!

 

 

食べてから、満腹だったら終了するので、後判定ループと同じ処理となります。

続いて、条件分岐でループ処理を抜けるもう一つの方法を説明します。

矢印+条件図形でループを抜ける方法

ループ図形を使用せずに矢印だけでループ処理を表現し、条件分岐でループ処理を抜ける方法です。

フローチャートの繰り返し処理は矢印と条件分岐でも書けます。

こんな感じです。

 

「満腹」の条件分岐がNoの時、矢印が下から上に向かってのがポイントです。

矢印が下から上にすることで何回も「焼き肉を食べる」ことができるループを実現しています。

食べてから、満腹だったら終了するので、後判定ループと同じ処理となりますね!

条件図形でループを抜ける判定方法!前判定・後判定・中間判定

条件図形を用いた判定方法は「前判定」と「後判定」と「中間判定」の3通りあります。

ループを抜ける判定方法
  1. 前判定

    繰り返し処理の最初で条件図形に終了条件を書く

  2. 後判定

    繰り返し処理の最後で条件図形に終了条件を書く

  3. 中間判定

    繰り返し処理の処理内で条件図形に終了条件を書く

(中間判定はあまり聞いたことがなく、筆者の造語です。あしからず)

 

フローチャートでループを抜ける方法!2重ループとは?

『2重ループとは』何だと思いますか?

繰り返し処理が2つあること
たろちゃん
たろちゃん


SEおっさん
SEおっさん
それだけじゃ、足らんのぅ


2重ループとは繰り返し処理が重なっていることです。

フローチャートで2重ループを書くと流れを俯瞰できるのでイメージを掴めます。

ホテルの掃除を例にあげて、具体的に説明しますね!

フローチャートで2重ループを抜ける

フローチャートの2重ループはこんな感じです。

ホテルの掃除を2重ループで処理します。

【2重ループ:ホテルの掃除】

フロア内の全部屋の掃除が終わってから、階段を上るところがポイント!

 

フローチャートで連続ループを抜ける

連続ループとは、開始~終了のループが2回連続しているループです。

単一ループを2回に分けてループを実行しているだけで、2重ループではありません。

2重ループと連続ループの違いは次の通りです。

  • 2重ループ:繰り返し処理が重なっている
  • 連続ループ;繰り返し処理が単独で2回続いている

【連続ループのフローチャート】

クイズ:
連続ループ(下のフローチャート)と2重ループ(上のフローチャート)の処理は、どこが違うでしょうか?

クイズの答え:

  • 2重ループ
    ホテルの全フロアの全部屋を掃除する
  • 連続ループ
    ホテルの最上階だけ全部屋を掃除する

多重ループとは?

繰り返し処理が重なると2重ループでしたが、3つ重なると3重ループ、4つなら4重ループです。

これらをまとめて多重ループといいます。

2重ループがわかれば、多重ループもわかったも同然ですよ!

僕は2重ループがわからんかった!

僕(SEのオッサン)が駆け出しプログラマーだったころ、2重ループが一番わかりませんでした。


正直、吐きそうでした。

 

でも、フローチャートで1つづつ紐解いて行くと…

コーディングが読めるようになってたんじゃ!

これは粘り・根性とフローチャートのおかげだと思っています。

諦めずにフローチャートを書いて、コーディングとニラメッコしてたら絶対に解る!

SEおっさん
SEおっさん
この『解った!』が快感なんじゃ♪

フローチャートでループを抜ける方法!無限ループとは?

無限ループや永久ループって聞いたことないですか?

なんか聞いたことあるゾ!

SEおっさん
SEおっさん
これを見てわかるのぅ

無限に食べる
たろちゃん
たろちゃん


SEおっさん
SEおっさん
正解

終了条件を書いていないループは、永久に同じ処理を繰り返します。

これは文字通り【無限ループ】や【永久ループ】と言われ、プログラミングを代表するバグの1つです。

フローチャートでループを抜ける方法!まとめ

いかがでしたでしょうか?

今回はフローチャートでループを抜ける方法について紹介しました。

少し、振り返ってみましょう!

ループ終了条件を書ける図形
  1. ループの図形

    繰り返し処理を表現するループの図形に終了条件を書ける
    ループの図形は開始と終了の図形があるよ(上下が逆さまなだけ)

  2. 条件分岐の図形

    条件分岐を表すヒシ形の図形にループの終了条件を書ける

  • 繰り返し処理は「ループ図形」か「矢印(下から上)」で表現する
  • 条件図形は繰り返し処理をどのように表現しても終了条件を書ける
ループを抜ける判定方法
  1. 前判定

    繰り返し処理の最初に終了条件を書く

  2. 後判定

    繰り返し処理の最後に終了条件を書く

  3. 中間判定

    繰り返し処理の中に終了条件を書く

 

つまり…

ループを抜ける図形は2種類ですが、ループを抜ける判定方法は3種類ある

ということになりますね。

また、

終了条件が無い繰り返し処理を『無限ループ』といいます。

プログラミングにおける無限ループはバグであるケースが多いですが、常駐処理などで敢えて無限ループにするケースがありますよ♪

SEおっさん
SEおっさん
ここまで読んでくれてありがとう!


プログラミング未経験・スキルゼロでもプログラマーとして中途採用!
プログラミング未経験・スキルゼロでもプログラマーとして中途採用!
皆さん、こんにちは! 今働いている業界に不安を持っているひとは多いでしょう。 今後、食いっパグレにない業界の一つにプログラマーが挙げられます。 未経験・スキルゼ.....


スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • LINEで送る

コメントを残す

*