こんな時はこうしてね! 〜ルール決めがプログラミングのコツになる〜
さて、2つ前のブログからお話してきたミングちゃんの探しもののお話ですが、ミングちゃんの算数のノートを探すために、一つずつ確実にチェックして、探す方法というのを考えました。そして、その時に同じ行動をくり返すのであれば、くり返しの魔法の一行「ループ」を使ってあげるととっても便利でしたね。
本当に全部くり返すの?
ノートを探し出すために、1冊ずつチェックをしていくのですが、前回書いた「くり返す」という命令について、あらためてじっくり考えてみましょう。くり返すことをまとめてあげると、すっきりはしましたが、くり返すと言っても、本当に全部同じことをすることは必要ですか?探すときに、本当はどうするのがいいか考えてみましょう。
【前回のノートを探すための行動】
1. ノートを置いたテーブルに行く
2. もし、1冊目の本(またはノート)が、ミングちゃんの探していた算数のノートでなかったら、1冊目本を横に置くを9回繰り返す
3. 見つかった算数のノートをカバンに入れます。
上記の1−3の中で、やらなくてもいいことって見つけられますか?
2番の文をよーく見てみると、「もし」という言葉がありますね。これは、「もしノートが見つからなかったら」という場合だけ、次の本を探すっていう特別なルールが書かれています。見つかってしまったら、もうこの2番のことはやらなくても大丈夫ですよね。見つかったのですから、その後は探さなくていいですね。そして、無事に学校に行けます。だから、2番の内容には、10冊分、本をチェックするということを、見つかるまでおこないますが、見つかったら3番のことをおこなってほしいという説明が足りませんでした。
ルールを作ってあげよう!
http://hoken.zexy.net/newlife/10.htmlより
2番の文はくり返すという1行の命令といっしょに、「もし見つかったら3番のことをやるんだよ!」ということをいれてあげないといけないですね。そのように書きかえると、次のようになります。
【2番をわかりやすく書いてみる】
1. ノートを置いたテーブルに行く
2. 10冊の本(またはノート)を、上から順番にとなりにおいて1冊ずつチェックする。
*ルール1:もし算数のノートだったら・・・
→ 3のことをする
*ルール2:算数のノートではなかったら・・・
→ 次の本をチェックする
3. 見つかった算数のノートをカバンに入れます。
1と3は変わりませんが、2を少しだけわかりやすくしてあげると、これをロボットに命令した場合にわかりやすく伝わるのではないかと思います。2のところを今回はルールわかりやすく書いてみました。このルールを作ってあげることをプログラミングでは、「じょうけんぶんき(条件分岐)」といいます。文で伝える時には、最初に書いたように「もし・・・ならば」と言いかえられます。言葉がピンとこないかもしれないので、この時には「じょうけんぶんき=ルール作り(場合わけ)」と思ってみてください。このルールを何にしてあげると、うまく命令ができるかな、やりたいことができるかなと考えるのが、プログラミングをうまく動かすコツの一つです。
たとえば、他のページで拝見しましたが、スポーツ大会や運動会などが、天気で予定が変わってくる場合なんかも、このルール作りをしてはっきりしてあげることで、みんながわかりやすく行動できるようになります。
http://www.wonderland02.com/entry/2017/03/15/230000参照
プログラミングは誰にでも伝わるように考えること
どんな場合にこの行動が必要で、どんな場合にはしなくてもよいかなど整理してみると、すっきりと伝わりやすくなりますね。前回お話した「くり返し」を探しだしたり、今回のような「こんな時はこうしてね!」というルールを決めてあげたりすると、いつもなんとなくしていることが、誰にでも伝わりやすくなっていきます。誰にでも伝わるようにすることが、プログラミングではとても大切で、プログラミングは、考えを簡単にしていくことなんですね。