プログラムを学ぶ上で、変数は避けて通れない重要な要素です。
でも、変数を子どもに説明するのは難しいと感じていませんか?
子ども向けのプログラミング本でも、変数の説明が「数字や文字を入れておく箱」というだけで終わっているものも少なくありません。
そこで今回は、Scratch(スクラッチ)を使って、変数の使い方やメリットをわかりやすく解説します。(MakeCodeなど他の言語でも考え方は同じです。)
なるべく難しい言葉を使わずに説明していますので、お子さんに説明する際の参考にしていただければうれしいです。
変数とは
変数(へんすう)とは、プログラムで使う数字や文字のようなデータを一時的に保存するために、メモリ上に名前をつけて確保した場所のことです。
よく「数字や文字を入れておく箱」と言われたりします。
数値や文字列などのデータを変数に入れて保存することができ、後で変数に保存したデータを取り出して使います。
たとえば、ゲームのスコアや残り時間などを保存するために使います。
「コンピュータのしくみを分かりやすく解説(五大装置)」でくわしく解説しています。
変数の使い方 スクラッチを使って解説
では、スクラッチで変数を使ってみましょう。
変数の作り方(宣言)
変数を作ることを変数の宣言と言います。
1.変数のカテゴリにある「変数を作る」をクリック
2.変数名を入力し、「OK」をクリック
- すべてのスプライト用(グローバル変数)
ステージとすべてのスプライトから使える変数 - このスプライトのみ(ローカル変数)
この変数を作ったスプライトのみ使える変数
3.変数ができました
変数の宣言とデータ型
プログラミング言語の中には、変数の宣言で変数名の他にデータ型を指定するものがあります。
データ型とは数や文字などデータの種類のことです。型と言ったりもします。
変数の宣言で「何を入れるか」まで決めているのですね。
データ型には下のような種類があります。
- 数値型 … 数(1、2、3…)
- 文字列型 … 文字列(”ABC”、”あいうえお”など)
- 真偽型 … 真(true)か偽(false)
スクラッチの場合、基本ブロックの形がデータ型を表しています。ブロックの形が同じ数値型・文字列型などは、中身によって自動で決まります。
変数にデータを入れる(代入)
変数に値を記憶させることを代入といいます。
変数にデータを代入するには、「変数▼を0にする」というブロックを使います。
▼をクリックすると変数を選ぶことができます。
0の部分は数値や文字を入れたり、変数や計算結果を入れることができます。
変数に入れたデータを使う(参照)
変数に保存したデータは内容を表示したり、計算などに使うことができます。
変数を使ったプログラム例
ハタがおされたとき、リンゴとバナナの個数を入力して合計金額を表示するプログラムです。
ネコのスプライトのプログラム
変数「合計」~変数はコロコロ変わる~
変数「合計」は、計算に使っています。
- 最初に0を入れて初期化。使う前に変数の中をキレイにしておきます。
- リンゴの金額を計算して「合計」に保存。
- 「合計」(この時はリンゴの金額)にバナナの金額を計算して足した値を保存。
変数「リンゴの値段」~変数を使うメリット~
イヌのスプライトでもプログラムを作ってみました。
ネコとくらべてみましょう。
ネコのスプライトは、最初に「リンゴの値段」「バナナの値段」へそれぞれ値段を入れて使いまわしています。
一方、イヌのスプライトでは変数を使わず、値段の値をそのまま表示したり計算の式で使っています。
どちらも結果は同じなのですが、
リンゴの値段が変わったら、ネコは1ヵ所だけ直せばいいですが、イヌは2ヵ所直す必要があります。
もし、リンゴの値段の場所が100ヵ所あったら……直すのが大変ですよね。
また、イヌのプログラムは計算に使われている150や120の数字の意味がパッと見て分かりにくいです。
「リンゴは150円です。と2秒言う」がなかったら、ますます分からなくなってしまうでしょう。
ネコのプログラムは変数の名前で意味がすぐ分かります。
まとめ
変数(へんすう)とは、データを入れておく箱のようなもの。
プログラムで使うデータを一時的に保存するため、メモリ上に名前をつけて確保した場所のことです。
データを変数に入れて保存することができ、あとで保存したデータを取り出して使います。
変数を使うことでプログラムを分かりやすくしたり、かんたんに変更できるメリットがあります。