こんにちは!
フリーランスエンジニアのかたやまです。
今回は、プログラミングの基本ルール「分岐」を日常生活から探してみようと思います。前回は、「分岐とは何か?」ということを中心に解説しましたが、今回は「日常生活から分岐を発見」してみようと思います。
これを読めば、プログラミング思考を日常に活かすことができ、論理的思考や好奇心を鍛えられると思います。たくさんの例を紹介するので、自分の身の回りでも同じように探してみてください!
日常生活にある3つの分岐処理
1.スターバックス
1つ目の例は、有名なカフェのスターバックスです。分岐は、複数の選択肢がある場合に活躍するので、メニューの多いスターバックスは良い例です。
分岐処理を使って、「スターバックスの注文受付ロボット」を考えてみましょう!①→②→③の順番で注文を聞いて、お客さまの注文によって行動を変えます。
① メニューを聞く「いらっしゃいませ!ご注文はお決まりでしょうか?」
- もし店のメニューにある商品を言われたら、「かしこまりました」と答えて②に進む
- もし店のメニューにない商品を言われたら、「申し訳ありませんが、当店では扱っていない商品です」と答えて、もう一度注文を聞く。
② サイズを聞く「サイズはいかがなさますか?」
- もし作成できるサイズを言われたら、「かしこまりました」と答えて③に進む
- もし作成できないサイズを言われたら、「申し訳ありませんが、当店ではそのサイズでお作りすることができません」と答えて、もう一度サイズを聞く。
③ ホット/アイスを聞く「ホットとアイス、どちらになさいますか?」
- もしホットと言われたら、ホットの商品を作って提供する
- もしアイスと言われたら、アイスの商品を作って提供する
条件や状況によって、処理(行動)を変えていることが分かると思います。プログラミングをするときも、発生する状況を考えて、あらかじめ処理を決めておくことが大切です。今回は条件を少なくして考えましたが、例えば②のとき「一番大きいやつ」と言われたら?、③のとき「アイスの氷抜き」と言われたら?などもっと細かく考えて、処理(行動)を決めておくと、より親切なロボットができあがります。
ちなみに①→②→③は順番に実施するため、順次になっていることが分かると思います。
2.プログラミング学習
2つ目の例は、プログラミング学習です。このサイトのテーマであり、みなさんも興味をもっている分野だと思うので、考えやすいのではないでしょうか。
分岐処理を使って、「プログラミング学習方法の紹介ロボット」を考えてみましょう!①→②→③の順番で質問して、お客さまにぴったりなプログラミング学習方法を紹介します。
① 料金を聞く「お金をかけてでもプログラミングを学びたいですか?」
- もし「はい」と言われたら、プログラミングスクールを紹介する
- もし「いいえ」と言われたら、②に進む
② 学びの環境を聞く「パソコンをもっていますか?」
- もし「もっていない」と言われたら、コードを書かないプログラミング学習「プログラミングの第一歩」を紹介する
- もし「もっている」と言われたら、③に進む
③ プログラミング言語を聞く「学びたいプログラミング言語がありますか?」
- もし「ない」と言われたら、プログラミング思考を学ぶために、コードを書かないプログラミング学習「プログラミングの第一歩」を紹介する
- もし「もっている」と言われたら、無料で学べるプログラミング学習サイトの「ドットインストール」や「progate」を紹介する
プログラミング学習に限らず、他の分野でも同じように分岐を考えることができます。お客さまにアンケートを答えてもらって、回答によってお客さまにぴったりな条件を紹介するということは、日常でもよく目にすると思います。
3.自動販売機
3つ目の例は、自動販売機です。街中に置いてある身近なコンピュータのため、仕組みを考えてみることは非常におもしろいと思います。
分岐処理を使って、「お金を入れられたときの動き」を考えてみましょう!入れられるお金は小銭だけで考えてみます。
① 何円が入れられた?大きさ、重さ、材質などで何円かを判断
- もし大きさ、重さ、材質が500円と同じなら、500円と判断する
- もし大きさ、重さ、材質が100円と同じなら、100円と判断する
- もし大きさ、重さ、材質が50円と同じなら、50円と判断する
- もし大きさ、重さ、材質が10円と同じなら、10円と判断する
- それ以外の場合は、コイン返却口にお金を戻す
② どのランプを光らせる?
- もし合計金額がジュースの値段より多かったら、ジュースのランプを光らせる
- もし合計金額がジュースの値段より好くなかったら、ジュースのランプを光らせない
- もしジュースが売り切れだったら、何円入れられてもジュースのランプを光らせない
③ どのボタンが押された?
- もしランプの付いているボタンを押されたら、押されたランプのジュースを取り出し口に出す
- もしランプの付いていないボタンを押されたら、何もしない
- もし返却レバーを押されたら、お金をコイン返却口に戻す
自動販売機をの仕組みを簡単に解説しました。ポイントは①の「それ以外の場合は」という条件です。入門編でも解説した非常に重要な考え方です。
まとめ
今回の「日常生活から分岐を探してみよう」は以上です。分岐は、考えられる条件を洗い出して、条件にあった処理を行うことが大切です。
何か作りたいものや達成したい目標があったら、今回のように分岐のプログラミング思考を活かすことができます。
達成するための方法はどれぐらいあるだろう?他にはないだろうか?もし○○だった場合はどのような結果になるだろう?考える条件に漏れはないか?と丁寧に漏れなく考えることで、目標達成ができる確立はかなり上がると思います。
では、また次回!