ベイダー卿

今日からはじめるプログラム(その9:変数)

2009-06-24 13:26:02

 
コーホー、コーホー、こんにちは、最近、熱くてマスクが蒸れてきたベイダー卿です。

 

今日の用語は”変数”

この言葉が出てこないプログラミング言語は無いといっても過言ではないでしょう。

プログラムを作るのにかなり大事なものですから。

”Hellow World!”なんて表示させられた最初のプログラムでは、使わなかったかもしれませんけれども、計算が入るとほぼ確実に出てくるのが、”変数”。

でも、最初はイマイチ良くわからない。

で、この変数のことね。

データを入れる箱だ!とか、説明する人、居るんですよ。

というか、かなり多い。

もう、それ見るたびに思いますけどね。

何でそういう、誰でもが違うイメージ持っちゃうものを出してくるかなぁ?と。

普段、色々なところに付け届けなんかをしている奥さんだったら、箱と言ったら菓子折りの箱ですし、

別所哲也なら、ハムの入ってる箱、

貨物列車の運転手さんなら、どう考えてもあのバカでかい貨物のコンテナですし、

トランスフォーマーなら、エネルゴンキューブ、

インディジョーンズなら、聖櫃なわけで…。

人生色々、箱も色々。

入門書なんかで、変数を、直方体で上に平面の蓋がついた殺風景な箱で表現してる時点で、もう話が破綻してると思うのは僕だけなんでしょうかね?

それとも、僕の難癖ですか?

まあ、どうでもいいんですけれども。

で、僕が思うに、プログラムで出てくる変数とは何か。といいますとね。

それはデータを入れる箱です。

って、つらっとこいてこんな事言いやがるか!ってぶち切れかけたあなたはちょっと短気ですね。

ビタミン不足を疑ってみましょう。

とりあえず話しは最後まで聞け。

で、箱もそうなんですけれども、箱だけではないんですよ。

網でもいいんです。

グラスでも構いません。

洗濯ばさみでもいいです。

要するに、変数とは、何かを保持する道具であると思ってください。

その道具のうちの一つに箱がある。ということです。

で、僕がどうしてわざわざこう言うか?といいますとね。

保持したいものって、色々な種類があるから。

プログラムでは、保持したいものが変わることが多いから。

そう、保持したいものが”変わる”ということも含めて考えないから、変数というのがとても難しいものだと思われるわけですよ。

例えば、水を保持するなら、グラスを使います。

お菓子を保持するなら、菓子折りの箱を使います。

鉄くずを保持するなら大きくて丈夫な鉄の箱を使います。

ドライアイスを保持するなら、冷凍庫を使います。

自分の弱い心を保持するなら、ATフィールドを使います。

ミレニアムファルコンを保持するなら、誘導ビームを使います。

このように、保持するものによって、使う道具が変わるのは、世間の常識。

誰でもが簡単に思いつくことです。

なのに、変数のことをデータを入れる箱だ!なんて説明するんですよ。

それっておかしくないですか?

後で、「データには色々な種類があります」って絶対に説明するくせに。

そこで矛盾するのが分かってるくせに。

それとも、何でも入るパンドラの箱だとか、ドラえもんの四次元ポケットだとでも言いたかったのでしょうかね?

しかも、この矛盾に気がつかれないように、その後の説明はゴリ押しされるか、端折られていることが多い。

二度と箱の挿絵は出てこない。

だからどっかの誰かさんは、そのあたりで躓いたことがあったりするわけでしてね。

誰とは言わない、あなたに今語りかけている呼吸音の怪しい人ですけれどもね。

なので、僕としては変数はデータを保持するための何らかの道具。

と思っていただきたいと思うんですよ。

そうすると、そのあとの説明がすごく楽になる。

「数字を保持するための変数(道具)を宣言(用意)しましょう」

とか、

「文字を保持するための変数(道具)を宣言(用意)しましょう」

とか、

そういうことがスムーズに言える。

さらに、エラーが出ても、すぐに分かる。

「この変数では、このデータを保持できないから、保持できる変数に変えてください」

って言われても多分簡単に理解できる。

そうじゃなかったら、

「ざけんなよ! 同じ変数っていう箱に入れてるのに何でエラー出るのよ!」

なんてガラの悪い不満が出てくる。

変数って言うのはすべて同じ箱のようなものというイメージを持ってしまうと、こういう不幸がおこるわけ。

とはいえ、実際問題、このあたりは、変数を箱だと説明しても、それなりに理解してる人のほうが多いんですけどね。

だから余計なお世話に近い話ではある。

でも、僕はおちこぼれをださない、金八先生とか、ヤンクミに近いタイプなので、こうやって懇切丁寧に説明してるわけですね。

当然、イソップも見殺しにはしない。

あ、意味の分からない人はどうでも良いネタです。

ネタに関しては、わからなくて、おちこぼれても全く気にしませんので、誰に遠慮することなく書き続けます。

で、変数。

プログラムではかなり頻繁に使いますから、覚えておかないと、なんとなく困ったことになりそうなわけです。

だから、しっかり覚えておきましょう。

 

そして、ここからが本題。

実は、変数には名前をつけることができるんですよ!

これが何よりの楽しみなんですね。

これがなければ、変数なんてなくてもいいとさえ思う。

それほど重要なことなんです。

例えば、会社にお茶というデータを保持するための湯飲みがいっぱいあったりする。

その中には、課長の湯飲みと、部長の湯飲みがあるわけです。

だから、それぞれに色や柄や形を変えておくなり、名前書いておくなりして、識別できるようにしておく。

そうしないと、課長と部長が間接キスすることになりかねませんからね。

部下としては、かなり楽しく意地の悪いイベントになりますけれども、なんにも知らない部長と課長は、ちょっとかわいそうだなぁと思ったり思わなかったり。

だから、自分の持ち物には名前を書いとけ。

というわけで、変数にも、やっぱり他とダブることのない名前をつけておけ、というわけなのです。

だから、変数名はわかりやすくつけましょう、なんて言われる。

ちなみに、職業プログラマーになると、変数名のつけ方も、仕様や社内規定で決まってることがあるので、ちょっと寂しいんです。

でも、このコラムを読んでいる皆さんは、暇な上に趣味でプログラムを組むという、立派な自由人。

フリーダムなあなたは、もちろん、名前の付け方も自由ですからね。

気になる異性の名前を書いたりしても当然OK。

というか、むしろ、そうすべき。

僕も、今度、会社の湯飲みに勝手に名前を書いちゃって、意図的に気になる彼女との間接キスを狙ってみようか、なんて、

額に輝く”愛”の文字を誇りにしている恋愛プログラマーの僕としては、そういう悪いことを思いついちゃったりするわけです。

でもね…。

でも…。

…。

ダースベーダーのマグカップなんて使ってるの、会社で僕だけなんですよね…。

名前書くまでもなし…。

気になる異性との間接キスなど、望むべくもなし…。

寂しいものです。

はい。

 

ということで、プログラムの中くらいは、変数名に好きな人の名前を使ってみるとか、その異性への暑苦しい思いを託してみるとか、

そのくらいの恋心を持ってプログラミングを楽しんでいただきたいと思うわけです。

「変数名は後から見てもわかりやすいものにしましょう」なんて、よくいわれますけどね。

でも、実際、後から見て、わからないことのほうが多いですからね。

結局、その変数がどこで使われ始めたのか?とか、

どういう宣言の仕方(用意の仕方)をされているのか?とか、

その宣言部分に書かれている説明のためのコメントだとか、

そういうのを追っていかないとわからなかったりすることのほうが多い気がするわけですよ。

変数名だけから判断したりするのって、とっても危険だったりもするわけですよ。

だから、趣味プログラミングの場合には、そんなこと気にせず、自由に変数名を決めましてね。

あなたには、思いっきり恋に生きて、愛に殉じて欲しいと願うわけです。

頑張って!

 

ということで、変数に関しては、これでバッチリわかりましたね。

まだまだ、次回に続きます。
 

※このエントリは ブロガーにより投稿されたものです。朝日インタラクティブ および ZDNet Japan編集部の見解・意向を示すものではありません。
  • 2件のコメント
#1   2009-07-03 00:47:54
今までいろんな本や、サイトで「変数」についての説明に出会いましたが、一番理解できました。
例えが素晴らしい!堅苦しくなく、だけれどもポイントをしっかりおさえられていて。
変数の考え方を教えてくれてありがとうございました!
#2 ベイダー卿   2009-07-08 13:17:27
#1さん
こんなに褒めていただけるとは、こちらこそありがとうございます。恐縮です。
世の中には、優秀な解説本はたくさんありますし、それに匹敵できるとは思ってないんですが、
それなら、僕くらいは、僕の道を行こうなんて、思っていますので、
妙な解説ですけれども、良ければこれからもお付き合いください。
  • 新着記事
  • 特集
  • ブログ