#変数を覚えるヒント
- 変数とは「データをしまっておく場所」
- 変数にはデータの種類・大きさに合わせた「型」がある
- 変数は「繰り返し」と「修正・変更」のためにある
##はじめに
プログラミング学習にあたり、「初心者向け」のサイトをいくつか読み漁っています!
ただ・・・
**プログラミングの共通ルールを知らないと絶対に心が折れる!**と思ったので、自分なりの解釈で覚えたことをまとめていきます。
今回は**「変数」**についてです。
##プログラミング界隈での変数とは?
数学で使った変数とは意味が違っていました。
((とはいえ「x=1」と書く、くらいしか覚えていません!))
プログラミングの世界で変数は『データをしまっておく場所』のことを言います。
身近にあるものだと「入れ物」や「付箋」に例えられます。
そしてコンピューターは、変数に入ったデータを出し入れしながら、物事を理解・処理をします。
また、変数には様々な種類のデータをしまっておけます。
具体的には「数」「文字列」「真偽」など。
((他にもあるんでしょうが、まずはこの3つだけ覚えておきます!))
身近な物で考えてみたんですが・・・スマホゲームの画面がしっくりきました。
ゲームシステムの中には、プレイヤー名(文字列)、いくつポイントが集まったか(数)、クリアしたか/していないか(真偽)をデータとしてしまわれていて、画面に表示してくれますね。
##変数の「型」について
変数には「型」があります。
型には、しまえるデータの形や容量に決まりがあり、例えば『整数だけしまえる変数』『文字列だけをしまえる変数』など様々です。
###型の必要性
そもそも、どうして変数には型が必要なのか。それは『効率化』のためです。
変数を「入れ物」で例えてみます。
入れ物には色々な種類があります!カゴ・ダンボール・紙袋・缶などなど。
そして種類によって得意なこと・苦手なことがあります。
カゴは持ち運びに便利ですが、隙間が大きいのでジュースなどの液体や空気をしまっておくことは苦手です。
缶は液体や空気をしまえますが…しまう容量が増えるほど缶自体が大きくなり、とても重くて移動するのが大変です。
プログラミングの世界でも一緒で、なんでもかんでも適当な変数にデータをしまうと、かえって処理が面倒なことになります。「適材適所」ってやつですね!
##変数にデータをしまう理由
そんな少しクセのある変数が使われる理由、それは「繰り返し」と「修正・変更」が得意だから。
といっても分かりづらかったので、「おつかい」で例えてみました!
###具体例:「リンゴを買ってきて」と頼まれた人の行動
- リンゴが売っているスーパーに行く
- カゴを持つ
- リンゴをカゴに入れる
- リンゴが入ったカゴを持ったままレジに行く
- 代金を支払う
- 家に帰って冷蔵庫にリンゴをしまう
・・・でも**「あら大変。ジャガイモも無かったわ。買ってきて?」**と言われたらどうしますか?
人間同士だったらケンカになりかねない瞬間です!!
一方、相手がパソコンだったとして考えましょう。
パソコンは文句をいいませんが、言われた通り(プログラミング通り)の行動しかとれません。
上の流れだと「リンゴ」の部分をすべて「ジャガイモ」に修正する必要があります。これ、とても面倒ですね。
こんな時に「変数」が活躍します!
では、どうやって使うのか!
先程の流れを踏まえつつ、変数を「付箋」に例えて考えてみます。
###具体例:付箋を使って「○○○を買ってきて」と頼まれた人の行動
- ○○○と書かれた付箋をもらう
- 付箋に書かれた品が売っているスーパーに行く
- カゴを持つ
- 付箋に書かれた品をカゴに入れる
- 付箋に書かれた品が入ったカゴを持ったままレジに行く
- 代金を支払う
- 家に帰って冷蔵庫に付箋に書かれた品をしまう
・・・なんだか手順が増えたし、言い回しが回りくどい感じになってしまいましたね。
でも、付箋に品名を書いて渡せば繰り返し何度でも、どんな買い物でもお願いすることができるようになりました!
###変数の宣言と代入
先程出た「付箋に品名を書く」行動は、プログラミング的にいうと**『変数を宣言・代入する』**ということになります。
**「△△△型の変数に★★をしまって(代入して)使うよ!」**とパソコンに教えて(宣言して)あげるんですね。
ちなみに付箋を変数っぽく例えるなら、『「文字列」をしまえるが「数」はしまえない型』といったところでしょうか。
いやいや、単純に「リンゴ2個」と書けばいいじゃん?と思うかもしれませんが、それは「文字」と「数」の区別がついている人間だから理解できるのです。
残念ながらパソコンは、そこまで都合よく察してくれません!!
##まとめ
ざっくりですが、変数についてまとめました。
まず変数はデータを入れる物だということ。そして型があるということ。
型によって入れられるデータの種類や大きさが違うということもわかりました。
そして、「変数を使うことで汎用性の高いプログラミングが効率よく書ける」
これが一番重要だったのかなと思います!