変数ってなに?プログラミングの基本中の基本

こんにちは!kobakoスタッフです。

子供にプログラミングを教えていると大体つまずく最初の壁が変数です。

いや、子供に限らず、大人の初心者に教えていても大体つまずきます。

ですが、プログラミングの基本中の基本で、

これがわからないと先に進めないのが変数というやつです。

数学の変数

変数というと、みなさん、数学の授業で習ったんじゃないでしょうか?

(小学生のみなさんはまだ習ってないかな)

そう、

X(エックス)とかY(ワイ)とか、そういうやつです。

この辺りから、

「数学苦手・・・」

と根を上げてしまった人も多いんじゃないでしょうか?

数学の変数もわからなかったんだから、プログラミングの変数もわからないだろう・・・

そう思われるかもしれませんが、そんなことはありません。

むしろ、

プログラミングの変数の方がわかりやすい

と僕は思っています。

なぜ変数が必要か

数学でつまずいた人もきっとこう思われたんじゃないでしょうか。

「変数ってなぜ必要?」

そう、数学だといまいち変数のありがたみがわからないんですよね。

ではプログラミングでは?

プログラミングの変数

プログラミングの良いところは、実際に動かして試せることです。

変数がなぜ必要かというよりも、

どういうときに変数を使うのか、

という話をしやすいのがプログラミングの良いところです。

void draw(){
  rect(50, 50, 100, 100);
}

上記のプログラムコードは、

横50、縦50の位置に四角形を表示する

というプログラムコードです。

表示位置が50で固定されていますので、ピクリとも動きません。

この四角形を動かすにはどうしたらいいか?

変数は数値に名前をつけられる

ここで変数が登場します。

float x = 50;
void draw(){
  rect(x, 50, 100, 100);
}

変数xを作って、中身を50としました。

つまり50という数値に「x(エックス)」という名前をつけたんですね。

これによって

横x、縦50の位置に四角形を表示する

というプログラムに変わりました。

xの中身は50なので、

横50、縦50の位置に四角形を表示する

のプログラムと全く同じ動きをします。

さて、ここでこう思ったはずです。

「で?」

無理もありません。名前をつけたところでなんやねんですよね。

おそらく、変数がよくわからない人のほとんどはこういう状態なんだと思います。

「名前をつけたところで、で?」

変数の大切な性質

変数は何も名前をつけらることにメリットがあるわけではありません。

変数には、

足したり、

引いたり、

全く違う数値に上書きしたり、

後から中身を変更できるという性質があります。

この性質を見落としてしまうと、

「で?」

になってしまいます。

float x = 50;
void draw(){
  x = x + 1;
  rect(x, 50, 100, 100);
}

プログラムに1行追加しました。

x = x + 1;

これは、

「変数の中身を1足します」

という意味です。

よって、変数xの中身は50から1足されて51になっているわけです。

そして、この処理を連続で続けると、

51, 52, 53, 54………99, 100

と変数xの値が増えていきます。

するとすると、

気がつけば、

横100、縦50の位置に四角形を表示する

というプログラムに変わっているわけです。

よって、

四角形の位置が移動し、自動で動く四角形

がプログラムとして機能します。

変数の使い所

今回の四角形の移動のように、

プログラムの途中で値を変えたい

こういうときに変数が役立つわけです。

プログラムの途中で、

動かしたい

移動したい

止めたい

色を変えたい

消したい

こういうことがしたければ、変数を使えばいいのです。

変数ってなんの役に立つの?

というよりは、

どういう時に変数を使うのか

というパターンを掴んだ方が理解が早かったりします。

そしてやはり、

動かしながら学べるのは、

プログラミングの素晴らしさとも言えます。

変数がわからなくても大丈夫

もしかしたら、この記事をご覧になって、

やっぱりわけわからん・・・

と自信を失ってしまった人もいるかもしれません・・・。

でも問題ありません。

文章でお伝えするのには限界があるだけで、

プログラミング教室kobakoでは、

対面でわかりやすく、事例を踏まえながら教えていきます。

変数ってなんだかよくわらかない・・・けれど便利だし、どういう時に使うか知っている!

理解というよりは、使い所がわかればOKだったりします。

プログラミングは理解力も大切ですが、

何よりも

トライアンドエラー!

繰り返し繰り返し挑戦していくことが一番の学習なんです。

Photo by Kelly Sikkema on Unsplash