実みつるのPreプログラミング

プログラミングの学習を考えている方へ

3-2 ひし形の記号

第三章 条件分岐

(2)ひし形の記号

まずは以下の図形をご覧下さい。

 

 

いわゆる「ひし形」です。ところで皆さんは、「フローチャート」あるいは「流れ図」といった言葉を聞いたことが有りますか。実際にプログラミングを行う前に作成される概略図、もしくは設計図の様な物なのですが、その中でこの図形は使われます。最近ではプログラミングとは関係無く、「あなたはどのタイプ」といった診断で見たことがあるかもしれません。

 

このひし形を使うと、これまで述べてきた「条件分岐」を図で表す事ができます。例えば、運動会の「雨天順延」は以下の様に表現されます。

 

 

ひし形の上の頂点から上に線が出ています。これはこの条件分岐よりも前に何かが行われていた事を表しています。「上から落ちてきた」「ひし形に入ってきた」という様な感覚で捉えて下さい。

 

次にひし形の左右からも線が出ています。これはひし形の中にある条件の結果によって進む道を示しています。この線は先ほどの線とは逆で、「ひし形から出ていく」という感覚になります。

 

左の線の上には「いいえ」、右の線の上には「はい」と書かれています。これは判断の結果で、「いいえ」なら左に、「はい」なら右に進めという事です。前項(1)で述べた通り、雨天順延とは「運動会は雨が降らなかったら実施。雨が降ったら後日実施。」という意味ですので、この図はその内容を表している事になります。

 

フローチャートは上から下に進むのが一般的ですので、矢印は記載されないのですが分かりやすくする為に矢印を記載した図も掲載します。

 

 

ここまでひし形を使って条件分岐を表現してきましたが、二者択一はこれで表現できそうです。しかし下の頂点を「出口」として使ったとしても最大で三者択一(いわゆる三択です)までしか表現できないのではと思いませんか。例えば前項(1)で例に挙げられていた干支は12も選択肢が有ります。ひし形でこれを表す事ができるのでしょうか…

 

答えは「できる」です。12の選択肢が有るのでしたら、最大12回質問をすれば結論が出るはずです。下の図を見て下さい。ただしここでは便宜上、誕生年から干支を推測するのではなく、「あなたの干支は○○ですか?」と尋ねることとします。

 

 

実際の会話では、

 

A:「あなたはネズミ年?」

B:「いいえ」

A:「じゃぁ、ウシ年?」

B:「そうそう」

 

という感じなのですが、ひし形を使った図で表すと上の様になります。ひし形をいくつも組み合わせる事で、選択肢が無数に増えても表現できるのです。

 

それでは最後に、前項(1)で見てきたランチのカレーについて考えてみます。簡単に振り返ると、「昼食に馴染みのカレー屋へ行き、営業していたらそこでライスかナンを選び、休業していたら別の店へ行く」というお話でした。これを図にすると下の様になります。

 

 

如何でしょうか。これを見れば、カレー屋が営業していなければライスかナンを選ぶことはない、という状況を簡単に捉える事ができます。

 

今回は条件分岐というものを、図を使ってイメージすることを試みましたが、もう一点確認すべき点が有ります。それは「二者択一を組み合わせる事で、複雑な条件分岐も実現できる」という事です。

 

プログラミングの条件分岐は、大半が「Yes or No」の二者択一で表されます。多くの結果に応じ、それぞれ処理を分ける事もできますが、基本は二者択一です。プログラミングを学び始めた頃は、できるだけ「二者択一を組み合わせる」練習をして欲しいと思いますので、これまで見てきた内容を是非覚えておいて下さい。

 

次回は条件に対する結果について考えていきたいと思います。