変数とは?小学生でも分かる!プログラミングの基本知識

プログラミングの基礎知識
・変数
・条件
・ループ
・命令
・大なり小なり(論理値?)

変数とは、何かを入れる箱のようなものだよ

箱?プレゼントが入っている箱とか?

そうだよ。ほかにも、スーパーの買い物かご、宅配用の段ボール箱、子どものおもちゃ箱、トラックの荷台といった感じかな。

りんご箱なら中身は全て「りんご」だけど、スーパーの買い物かごにはリンゴだけじゃなく、みかん、牛肉、魚、キャベツといった食べ物だけでなく、食器用洗剤も入れることが出来る。

入れるものの大きさや量によって、用意する箱の大きさや丈夫さが変わってくるのと同じで、変数も、使用目的によって用意する大きさが変わってくるんだよ。

どうして?最初から大きくて頑丈な箱を用意しておけば、どんなものを入れても安心だから、それでいいんじゃないの?

でも、リンゴ1つを入れるために、トラックの荷台は使わないよね?大きければそれだけスペースも必要だし、何個も用意できないかもしれない。そうなると困るよね。

だから、入れるもののサイズをあらかじめ把握して、そのサイズに必要なサイズの箱を用意してあげることが大切なんだよ。

変数の名前は「わかりやすい」が絶対!

そして箱にはそれぞれ名前を付けてあげよう。

リンゴしか入っていない箱には「リンゴ箱」、リンゴとミカンが入っている箱には「リンゴとミカンの箱」というようにね

箱の中身は透明じゃないから、外からは見えないよね。1つ探すために、全ての箱を開けるのは大変なんだ。

そういう状況知ってる!!この前、家族で引っ越ししたときに、引っ越し先でママが「鍋の蓋がない」って、いくつもの箱を開けて探していたんだよ

そうなんだよ。何が入っているが変わらないと、箱をひとつづつ開けて探すしか方法がないからね。それでは、時間もかかってしまうし疲れちゃうよね

そして、もし「リンゴを入れる箱」のことを「僕が1番好きな果物を入れる箱」という名前にしてしまったら?

他の人が、その箱を見た時に、「僕ってだれ?」「1番好きな果物ってなに?」ってハテナがいっぱい浮かんでしまうよね。

そしたら、間違えてリンゴ以外の果物を入れる箱として使ってしまうかもしれないよ。

「変数名を付けるときは、誰が見ても分かる名前を付ける」というのを忘れちゃいけないよ。

変数の種類

変数の種類のことを、変数の「型(かた)」といいます。

私たちの日常では、スーパーの買い物かご、宅配用の段ボール箱、子どものおもちゃ箱といった様々な種類の箱に名前があるように、変数の型にも名前があります。

整数型
浮動小数点型
文字列型

普段、ものを数えたりするときにしようする「1」「2」「3」のことを整数と呼ぶよね。
整数だけを入れることができるのが整数型だよ。

浮動小数点型というのは、小数点がある数字のことだよ。長さを測るときに「5.6」センチとか整数では表せない数になるときがあるよね。そういった小数点がある数字を入れることができるのが浮動小数点型だよ。

文字列型は、数字以外の文字のことをいうよ。「おはよう」「こんにちは」といった挨拶や、「昨日は友達と一緒に映画を見に行きました」といった文章も文字列型になるよ。
文字列型には、作文のように長い文章をいれておける型もあれば、短い文章しか入れておけない型もある。

他にも、正/誤を判定するブーリアン型や、変数がひとまとまりになった配列、オブジェクト型というものもあるよ。

それに、変数の型については、プログラミング言語によって少し変わってくるよ。

変数は宣言してから使う

変数を使う前は、「〇〇型の変数を使うよ!」と宣言してから使用します。

つまり、「この箱はリンゴを入れるからリンゴ箱にするよ!」と宣言するのです。

リンゴだから、リンゴ箱にするのは当然?

いやいや。リンゴ箱って思っているのは、箱を用意した人だけで、他の人は「果物なら何でも入れていいのかな?」「食べ物なら何でもいいのかな?」と、思ってしまうかも。

そうなると、用意した人はリンゴだけが入っていると思っているのに、実際にはミカンもブドウもスイカも入っていたら?

蓋を開けて中身を取り出してビックリしてしまうよね。

プログラムでも、「はい。これリンゴが入った箱です」って渡されたのに、ミカンやブドウ、スイカが入っていたら、「何これ?なんでリンゴ以外が入っているの?」ってなって、ちゃんとした処理が出来なくなるんだよね。

宣言の種類

JavaScript には宣言を行う方法が3種類あるんだよ。

var
変数を宣言し、ある値に初期化することもできる。

let
ブロックスコープのローカル変数を宣言し、ある値に初期化することもできる。

const
読み取り専用の名前付き定数を宣言する。

「var」は、良く使われる宣言の種類で、

var りんご箱;

といった書き方をします。

そして、

var りんご箱=5;

とすると「最初からりんご箱にはりんごが5個入っている」という意味になるよ。

「let」は、使用できる範囲が制限されている変数を表すよ。

たとえば、スーパーの買い物かごはスーパーの中でしか使えないよね。

それと同じように、特定の範囲(スコープ)だけで使用する変数で

let 買い物かご;

といった書き方をします。

初期値を設定するときは、

let 買い物かご=3;

になって「買い物かごの中には商品が3つ入っています」という意味だよ。

変数のスコープは狭い方が良いと考えられています。

なぜなら、Aスーパーにも買い物かごはあるし、B薬局にも買い物かごはある。Aスーパーの買い物かごはB薬局では使わないし、B薬局の買い物かごもAスーパーでは使わない。

使う必要がないものは範囲を限定してしまうというのが「あれ?どっちの買い物かごだっけ?」ってならないで済むよね。

AスーパーとB薬局が遠く離れていたら、そんな間違いしないと思うけど、もしも隣同士だったら?買い物かごを間違いちゃう人きっといるよね。

だから、使用できる範囲を限定しちゃうんだ。

「Const」は、読み取り専用の名前付き定数を宣言するよ。

読み取り専用というのは、人の名前など変えられちゃうと困る場合に使用するよ。

だって、鈴木太郎さんが、鈴木花子さんにはならないでしょ?

でも、読み取り専用にしないと誰かが、間違えて変えてしまうかもしれない。そんなことが起きたら大変だよね。

「Const」は、

const 私の名前 = 鈴木太郎;

といった書き方をします。

これで、「私の名前」という変数は、常に「鈴木太郎」のままでいられるんだ。

変数の値が変わる?

さきほど、宣言を「Const」にしたら値を変更することができなくなるって言ったよね。

じゃあ、逆に、値を変更したくなるときってどんなときだろう?

たとえば、スーパーで買い物をしているときは、店内を歩きながら欲しい商品を次々いれていくよね。

そのとき、買い物かごの中は、

人参 1
バナナ 1
ジャガイモ 1

って、どんどん増えていくね。

それを数えていくと、

1+1=2
2+1=3

って、買い物かごの中に入っている商品の数は変わっていくね。

変数は、買い物かごと同じだって言ったの覚えている?

だから、買い物かごに入っている商品の数が変わるように、変数の値も変わるんだよ。

さきほどの買い物かごを例にすると、

買い物かご = 1 //最初に人参を1本買い物かごに入れたよ
買い物かご = 買い物かご+1 //次に、バナナを1本買い物かごに入れたよ
買い物かご = 買い物かご+1 //最後に、じゃがいもを1つ買い物かごに入れたよ

と、書くよ。

他にも、ランドセルの中身が毎日変わるように、中身を全て空にすることもできるよ。
そういうときは、

ランドセル = 0

で、中身を空っぽにしてしまえるよ。

応用!!

買い物かご = 買い物かご+1

という書き方以外にも、

買い物かご++

++買い物かご

といった書き方もできるよ。

インクリメント演算子(えんざんし)とよばれるものです。

1ずつ減っていくときは、

買い物かご–

–買い物かご

になるよ。

詳しくは、こちらの記事から読んでね。

処理が複雑になってくると、変数の値が変わる処理は、ループ処理と一緒に使うことが多くなるよ。

変数で使える文字

変数名で使える文字というのは決まっていて、

マイクロビットは、JavaScript(ジャバスクリプト)というプログラミング言語で動いているから、JavaScriptのルールに合わせる必要があるんだ。

そこでは、

使用できる文字はUnicode文字、アンダーバー(_)、ドル記号 ($)
(OK)name, kazu, 名前, $num
(NG)name, kazu, 名前, $num

先頭文字には数字の0から9は使えない
(OK)maisuu5
(NG)5mai

大文字と小文字は区別される
(例)nameとName、NAMEは別々の変数として扱われる

予約語は使用できない
(例) function や if newなどの予約語は使用できない

さて、1番に気なるのは、変数名に日本語が使えるのか?ということですが、結論から言うと

使えることは使える。でも、できればアルファベットが良い。

ということになります。

変数名はUnicode文字(ユニコードもじ)であればOKで、日本語もUnicode文字に含まれているのですが、英語のアルファベットは小文字(abc)、大文字(ABC)合わせても52文字なのに対して、

日本語は平仮名83個(50音図+濁音+半濁音+撥音)、カタカナ83個(50音図+濁音+半濁音+撥音)合わせて166個、さらに漢字も合わさると・・・ちょっと数えられない・・・

それに旧漢字まで入ってくると、複雑さは増すよね。

だから、変数名に日本語は使える。

でも、もしアルファベットが使えるなら、アルファベットを使って欲しい。

ユニコードについて、もっと知りたい人は、以下の記事を読んでみてね。

リンク

まとめ

変数について、まとめるよ。

  • 変数とは、何かを入れる箱のようなもの
  • 変数名を付けるときは、誰が見ても分かる名前を付ける
  • 変数の種類のことを、変数の「型(かた)」という
  • 変数を使う前は、「〇〇型の変数を使うよ!」と宣言してから使用する
  • 宣言の種類は3種類(var、let、const)
  • 変数の中身は変わる
  • 変数で使える文字は決まっている

最初は難しくて全部は理解できないかもしれないけど、使っていくうちに理解できるようになるから、心配しないでね。

まずは使ってみて、分からないってなったら、またこのページを見に来てね^^

コメント

タイトルとURLをコピーしました