2020年からの小学校でのプログラミング教育必修化に伴って、プログラミングへの関心が高まっています。
そして、教育用のプログラミング言語として人気があるのが、スクラッチ(Scratch)で、色々なゲームや作品を作ることができます。
でも、ゲーム作りだけでなく、プログラミングの基本や考え方も学んでみたいというお子さんや、学ばせたいという親御さんもいらっしゃるのではないでしょうか?
そこで、学びプラスでは「スクラッチで学ぶプログラミング」シリーズを公開中です!
今回は、プログラミングには欠かせない「変数」について解説していきます。
目次
プログラミングの「変数」って何??
プログラミングをしていると、「変数」というものをよく使います。
でも、「変数」とはどんなものなのでしょうか?
変数とは、値(あたい)を入れる箱のこと
変数とは、値を入れておくための”箱”に例えることができます。
その箱の中に、数字や文字などの値を入れることができます。
また、箱には名前が付けることができ、「変数名」と言います。
図でイメージすると、下のような感じです。
具体的な例でいくと、「点数」という名前がついた箱(変数名は、”点数”)があり、そこに「100」という数字を入れることができます。
変数に値を入れるのは「代入(だいにゅう)」という
変数に値を入れることを、プログラミングでは「代入」と言います。
上の具体例では、点数に、100を「代入」したといいます
もちろん「100」以外にも、「50」や「0」などほかの数字を代入することもできます。
ただし、変数(箱)の中には一度に一つの値しか代入できないので、注意しましょう。
「0」と「100」は、一緒には代入できません。
変えられない変数は、「定数」という
変数には、いろいろな値を代入できると解説してきましたが、プログラミングでは、「定数」というものもあります。
「定数」とは、変数に代入した値が固定で変えられないもののことです。
一般的なプログラミングでは、定数を使うことで複数の箇所で同じ値を使うことができたり、あやまって別の値を代入したりすることが少なくなるなどのメリットがあります。
なお、スクラッチでは「定数」を意識することはあまりないと思いますが、プログラミングの用語として覚えておくと良いでしょう。
スクラッチで、変数を作ってみよう
では、早速スクラッチで、変数を作ってみたいと思います。
今回は、”点数”という変数を作っていきます。
【スクラッチ①】新しく変数を作成する
変数をつくるためには、「変数」から、”変数を作る” を選んできます。
すると、画面が切りかわり、変数名を入力する画面になります。
そして、OKを押すと、「点数」という変数が作られました。
このように変数を作ると、新しい変数名のブロックが表示されるようになります。
また、画面上にもその変数が表示されます。なお、変数名のブロックの前についているチェックを外すと、画面上に表示されている変数を非表示にすることができます。
【スクラッチ②】変数に値を代入する
変数に値を代入して使うためには、「変数」の中の、以下のブロックを使っていくことができます。
(点数)を0にする ブロックは、変数に値を代入することができます。自由に値を入力して、変数に代入できます。
また、(点数)を1ずつ変える ブロックは、変数に入っている値を少しずつ変えることができます。1ずつ変える場合は、変数の中の値が1ずつ大きくなっていきます。逆に、-1ずつ変えるとすれば、値を1ずつ小さくすることができます。
【スクラッチ③】変数を使った簡単例
例として、以下のプログラムで変数を使ってみます。
このプログラムでは、まず点数を10にして、そのあとは点数を1ずつ変えて、1秒待つことをずっと実行するプログラムです。
⇒つまり、点数が10から始まり、1秒ごとに点数が1ずつ大きくなります。
実行すると、画面左上の点数が1ずつ増えていくのが分かります。
プログラミング:グローバル変数とローカル変数とは?
新しい変数を作るときに、「すべてのスプライト用」と「このスプライトのみ」を選ぶことができます。
スクラッチでゲーム制作する場合は、「すべてのスプライト用」を使うことが多いです。
それは、「すべてのスプライト用」で変数を作ると、他のスプライトもその変数を使うことができ、便利だからです。
このように、どのスプライトでも使える変数のことを、プログラミング用語では、「グローバル変数」と言ったりもします。
一方で、「このスプライトのみ」で変数を作ると、そのスプライトでしか使えない変数となります。
そのような変数をプログラミング用語では、「ローカル変数」と言われます。
一般的なプログラミングでは、「ローカル変数」を使うことで、複数人でプログラム開発しても、あやまって値が変更されたり、予期せずその変数を使ってしまうすることを防いでいます。
ただ、スクラッチでのプログラミングでは、どのスプライトからでも扱える「すべてのスプライト用」(グローバル変数)を使うほうが便利なことが多いため、こちらを使うと良いかと思います。
変数の代入時は、半角と全角に気を付けよう
変数には、数字や文字列を代入することができて便利ですが、数字を代入するときに気を付けたいのが、「半角」と「全角」です。
例として、半角と全角の数字を見てみましょう。
半角数字:1234
全角数字:1234
全角の方が数字が大きく表示されているのが分かるかと思います。このように数字を全角で入力すると、スクラッチでは文字として扱われてしまいます。
先ほど上で挙げた例で、「点数を1ずつ変える」の ”1” を全角にすると、点数が10になったまま、点数は増えません。
これは、”1”が文字として扱われ、1ずつ大きくする足し算を行うことができないからです。
スクラッチでうまく計算ができなかったりする場合は、入力した数字が全角になっていないか確認してみると良いでしょう。
スクラッチで変数を使ったゲーム作成
変数を使って、いろいろなゲームを作ることができます。
例えば、「リンゴキャッチゲーム」で、「点数」を変数にすることで、リンゴをキャッチ出来たら1点入るゲームを作成できます。
プログラムの詳しい中身はこのページから確認できます!
ここでは、変数を使っている部分を見ていきましょう。
ゲームが始まると、まずは「点数」を0にしていきます。プログラミングでは、このように最初の値を決めて代入することを「値の初期化」というので、覚えておきましょう!
そして、スプライト1(ここでは、リンゴ)に触れたら、点数を1ずつ変えて点数を大きくしていきます。
それによって、リンゴをキャッチできたら、点数が増えていくことになります。
プログラミングでは、変数は重要!
ここでは、スクラッチでプログラミングする際に欠かせない「変数」について見てきました。
変数を新しく作って、値を変えたりすることで、様々なゲームで「変数」を利用することができます。
また、スクラッチ以外にも、「変数」の考え方は、一般的なプログラミング言語や数学でも出てくるので、ぜひ慣れていくと良いでしょう!