こんにちは!ぴょろ先生です。
今回のテーマは「関数」です。
中学校の数学でも関数は出てきますが、プログラミングの関数はちょっとイメージが違います。
とはいえ安心してください。今日の内容は、小学生でも分かるように「めちゃめちゃ噛み砕いて」説明します。
関数が分かるようになると、プログラムが一気にスッキリして「ゲームづくりが上手くなった感」が出てきます。ぜひ親子で参考にしてみてください。
- プログラミングの関数は、ひとことで言うと 「プログラムをまとめる仕組み」
- Scratchでは関数のことを 「定義」 と呼ぶ(内容は同じ)
- まとめた処理は、必要なときに 呼び出すだけ で何回でも使える
- さらに「引数」を使うと、同じ関数でも 中身(数字や文字)を変えて実行できる
- 繰り返し出てくる処理ほど、関数化するとミスが減って上達が早い
関数ってなに?→一言でいうと「よく使う処理のまとめ」
関数は、めっちゃ簡単に言うと プログラムの“まとまり” です。
よく使う処理をまとめておいて、必要なときに呼び出して使える、というイメージですね。
「同じブロックを何回も並べるのが面倒…」
「あとで直すとき、全部直すの大変…」
こういうときに関数がめちゃくちゃ役立ちます。
洗濯機は「関数っぽい」!?
分かりやすい例として、洗濯機を想像してみてください。
洗濯機って、
洗濯物を入れて → ボタンを押して → コースを選んで → スタート
ですよね。スタートすると勝手に回って、終わったら「終わりました」となります。
これを関数にすると、例えばこんな感じです。
- 関数名:洗濯
- 実行すると:
- 「洗濯を始めます」
- しばらく待つ(洗う)
- 「洗濯が終わりました」
つまり、ボタンを押すだけで一連の流れが動くのが、関数のイメージに近いんです。
Scratchでは「定義」=関数だと思ってOK
Scratchで関数にあたるのは「ブロック定義(定義)」です。
名前は違いますが、役割は同じなので
定義 = 関数
と思って大丈夫です。
関数の大事ポイント:作っただけでは動かない
ここが意外とつまずきポイント!
関数(定義)は、作っただけでは何も起こりません。
呼び出して初めて動く
「旗が押されたとき」に、作った関数を置いてあげる(呼び出す)ことで初めて実行されます。
これは「洗濯機も、ボタンを押さないと動かない」のと同じです。
関数を使うと、プログラムがスッキリする
たとえば「洗濯を始めます→待つ→終わりました」を2回やりたいとします。
関数がないと、同じブロックを2セット並べることになります。
でも関数があれば、
「洗濯」
「洗濯」
と、呼び出しを2回置くだけでOK。
見た目がスッキリするだけじゃなく、あとで修正するときもラクになります。
(文章を2箇所直すより、1箇所直す方がラクですよね。それと同じです。)
さらに便利!「引数」で中身を変えられる
関数のもう一段上の便利さが「引数(ひきすう)」です。
引数は、関数の中でだけ使える “変数みたいなもの” です。
同じ関数でも、毎回ちがう内容にできる
さっきの洗濯の例で言うと、
「制服の洗濯」「ジーンズの洗濯」みたいに、洗うものは変わりますよね。
そこで引数を「洗濯物」にしておくと、関数の中の文章を
- 「(洗濯物)の洗濯を始めるよ」
- 「(洗濯物)の洗濯が終わりました」
のように書けます。
そして呼び出すときに
- 洗濯(制服)
- 洗濯(ジーンズ)
と入力すると、表示がちゃんと変わります。これが引数のイメージです。
引数は複数つけられる(順番に注意!)
引数は1つだけじゃなく、2つ、3つと増やすこともできます。
ただし、入力する順番を間違えると意味が変わってしまうので注意。
特にX座標・Y座標など数値で動かすときは、逆にすると動きが変わります。
動画もぜひご覧ください!
この記事で全体像はつかめますが、動画ではScratchの画面で
- 定義ブロックの作り方
- 呼び出さないと動かない理由
- 引数を入れたときに、表示がどう変わるか
が実演で見られるようにしているので、理解がかなり早いです。
「なるほど、こういうことか!」が起きやすい回なので、ぜひ親子で見てみてください。
まとめ
プログラミングの関数は、よく使う処理をまとめて、何回でも呼び出せる仕組みです。Scratchでは「定義」と呼ばれます。そして引数を使えば、同じ関数でも中身を変えられるので、できることが一気に広がります。
当教室でも、ゲーム制作の中で「同じ処理が増えてきたら関数化しよう!」という形で、子どもたちが自然に関数を使えるようにサポートしています。
「うちの子に合うかな?」「まずは雰囲気を見たい」という方は、体験会で気軽に試してみてくださいね。
