【連載】どれ使う?プログラミング教育ツール
プログラミングの基本をScratchでおさらいしよう(変数編①)
変数を使って「変更に強く」「使いまわしOK」に!
2022年9月14日 06:45
プログラミングの基本の考え方、「順次」「反復」「分岐」の考え方もおさえたことだし、さてこれでもう安心!どんどんプログラミングをやっていくぞ……と一歩を踏み出したとたんに、すぐに「え?これ何?」という不安な気持ちになりがちなのが「変数」の存在です。今回は変数がどんなもので、何に使うのかを、まずは簡単な例で見ていきましょう。
「変数」とは?
変数というのは、プログラムで使う「値をいれておける入れ物」です。入れ物には名前のラベルが貼ってあって、中には数字や文字列などの値を入れることができます。一度作った変数は、プログラムの実行中にいつでも呼び出すことができて、入れた値を取り出したり、変更したりできます。
変数は、言葉を保存しておいてプログラムの中で繰り返し使ったり、点数などを数えるしくみを作るのに使ったり、さまざまなことに使えます。初心者向けのプログラミング学習では、変数が登場しないプログラムから始めることが多いのですが、プログラミングで変数を使わないでいられることは、なかなかありません。
どんなふうに使うのか、なぜ便利なのかは、実際にやってみるのが一番わかりやすいので、早速Scratchで変数を使ってみましょう。
変数を作る
Scratchで新しいプロジェクトを作ったら、ネコを選んだ状態でプログラムを作りましょう。[変数]メニューから[変数を作る]ボタンで新しい変数を作ります。好きな名前をつけられますので、「name」とします。同じ作業を繰り返して「age」、「favorite」という変数も作ります。
全部で3個の変数ができました。次の図の通り、作成した変数を使うためのブロックが追加され、ドロップダウンメニューからも選べるようになっています。
この状態を図で示すと、名前のついた箱が3個できたというイメージです。
変数に値を入れる
つづいて、作成した変数に値を入れましょう。["変数"を"0"にする]ブロックを使って、次の図の通り、3つの変数に値を入れるプログラムを作ります。変数「name」に「たろう」、変数「age」に「10」、変数「favorite」に「水族館めぐり」を入れています。
この状態を図で示すと、名前のついた箱の中に、それぞれ中身を入れたというイメージです。
変数を使うと変更に強くなる!
値を入れた3つの変数を使って、次の図の通り、ネコにセリフをしゃべらせるプログラムを作りましょう。セリフの途中にところどころに変数が入っていることに注目してください。同じ変数が2回登場している箇所もあります。
上の図のプログラムを実行すると、図の右側に示した通りのセリフが順に吹き出しで表示されます。プログラムで変数を指定した箇所はのセリフは変数名「name」ではなく、変数に入れた値「たろう」が表示されていますね。こんなふうに、プログラムを実行したときには、変数の中に入っている値が、セリフとして出力されるのです。
わざわざ変数なんて使わずに、直接セリフの指定に「たろう」とか「10」とか「水族館めぐり」とか書けばいいのに……と思う人もいるかもしれません。それでも表示されるセリフは同じですから問題はありません。でも、もしもっと長いプログラムで、名前や年齢や好きなことが何度も何度もセリフに登場するとしたらどうでしょう?
例えば、このプログラムでも、セリフに「水族館めぐり」が2箇所出てきます。これが100箇所出てくることを想像してみてください。好きなことを「水族館めぐり」から「映画鑑賞」に変更したくなったら、プログラムのセリフ部分を100箇所書き換えなければいけません。とんでもなく大変です!! このプログラムのように変数「faovorite」を使ってプログラムを作っておけば、上から3つ目のブロックを、["favorite"を"映画鑑賞"にする]と書き換えるだけですむのです。
プログラムの使い回しができる!!
また、変数名を変えるだけで、違うセリフを簡単に作り出すことができます。全く同じプログラムの、変数に入れる値だけを変更してみましょう。
図で示すと、次の通りです。
Scratchのプログラムにすると、次の図の通りです。変数に入れる値の指定以外はどこも変更することなく、違うセリフを作ることができました。長く続くプログラムのあちこちを触ることなく、最初の部分だけを触ればいいので、修正が楽で、間違いづらいですね。
以上のように、プログラムの効率やメンテナンス性を上げるのに変数はなくてはならない存在なのです。こうして見てみると、変数なんてこわくなくなり親しみが持てたのではないでしょうか?
今回のプログラムでは、変数に一度値を入れただけでしたが、次回は、プログラムの実行中に変数の値がどんどん変わっていくしくみに挑戦しましょう。回数を数えるプログラムを作る予定ですからお楽しみに!