変数のはなし
プログラマーからひとこと
プログラムの世界では「変数」ということばがあります。変数、ヘンなことばですね。「変化する数」という意味らしいですが、そんなことを言われても、むしろわかりづらいです。
このわかりづらいものを、まずはおぼえなければいけません。たいていのプログラムは変数で動いているからです。
変数をいじるのに、昔はよくLET命令なんて使ったものです。「LET」を日本語で言うと「こうやっといてね」みたいな意味ですが、すごくアバウトですね。
そんなものをいちいち書くのもめんどくさかったのか、今はLET命令が省略されるという、なんだかよくわからないことになっています。プチコンの説明書で「=(LET)」という、ひとめで命令とはわからない見出しになっているのもそのせいです。ややこしいですね。
いいんです、もうなりたちとか考えずにおおざっぱにおぼえましょう。
最初におぼえる変数
インテリ「というわけで、プログラムの前に変数についておぼえておこう!」
ワンパク「なにが「というわけ」だ! ヒントすら見えてこねェぞ!」
インテリ「じゃあまずは、カンタンな変数の実例を見てみようか。」
A=10
インテリ「これがどういう意味かわかるかな? ヒントは、この中では「Aが変数」!」
ワンパク「変数がなんなのかはサッパリだが、イコールでつながってんだからAが10なんじゃねェの? ……「Aが10」ってナンだ?」
インテリ「自分で言っていてわからなくなってきたかな。でもそれでほぼ正解なんだよ。」
神崎「けっきょく「変数A」ってなんなのか、だよね。」
インテリ「では変数について説明しようか。
変数はよくバケツにたとえられるね。ここでは、Aという名前のバケツがあると考えよう。
Aというバケツの中に10と書かれた紙を入れる、それがA=10という命令だったんだね。
」
変数はよくバケツにたとえられるね。ここでは、Aという名前のバケツがあると考えよう。
Aというバケツの中に10と書かれた紙を入れる、それがA=10という命令だったんだね。
」
神崎「ふうん、算数で使うイコールは「両方が同じ」だけど、BASICの=はちょっと意味が違うんだね。」
インテリ「そういうこと。「バケツの中に入れる」のがBASICの=なんだ。」
ワンパク「で、そのバケツが何の役に立つんだ? 今んトコ、メモを入れただけのタダのゴミ箱じゃねえか!」
インテリ「たしかに使わないとイミがないよね。こういうプログラムにしてみよう。」
0001#. A=10
0002#. PRINT A
0002#. PRINT A
神崎「あれ? PRINTの使い方が前におぼえたのとちょっと違う……?」
ワンパク「PRINT”A”のマチガイじゃねェのか? RUNで実行してみようゼ!」
10
OK
OK
神崎「Aじゃなく10って表示されたよ!」
インテリ「2行目のPRINT Aは、バケツAの中に入れておいた10という紙を読みあげていると考えればいいよ。
PRINT文で変数を使うときは、”で囲まないのがルールだね。」
PRINT文で変数を使うときは、”で囲まないのがルールだね。」
ワンパク「だんだんワカってきたぜ。こういうコトだな?」
0001#. A=10
0002#. B=20
0003#. PRINT A
0004#. PRINT B
0002#. B=20
0003#. PRINT A
0004#. PRINT B
ワンパク「バケツを2コ用意してみたぜ! ラクショーじゃねえか!」
10
20
OK
20
OK
神崎「いま新しいバケツの名前をBにしたけど、変数にはどんな名前でもつけられるのかな?」
インテリ「アルファベット16文字までなら何でもOK!……と言いたいところだけど、BASICが使う命令は変数にできないんだ。たとえば変数「RUN」なんてのは作れないね。」
神崎「まあ、あたりまえと言えばあたりまえかな。使えるのはアルファベットだけ?」
インテリ「数字も使えるけど、最初の1文字だけはアルファベットじゃないと変数には使えないね。変数の名前でありそうなのはざっと、こんな感じかな?
0001#. A1=1
0002#. B123=2
0003#. ABCDEFG=3
0004#. ABC123DEF=4
」0002#. B123=2
0003#. ABCDEFG=3
0004#. ABC123DEF=4
ワンパク「そんな豆チシキの間にも、オレはドンヨクに新しいコトをためすゼ! バケツに入れる紙にオレの名前をキザミこんでやろう!」
0001#. A=WANPAKU
0002#. PRINT A
0002#. PRINT A
ワンパク「前にPRINT”WANPAKU”って書いたが、これでもいいワケだろ? RUNだ!」
0
OK
OK
ワンパク「???」
インテリ「なんでも応用してみるのは大事なことだよ。エライぞ、ワンパク君! うまく動かなかったら、そのゲンインを探るのもレベルアップのヒケツさ。」
ワンパク「思いきり上からメセンでホメやがって! 何がマチガってるってんだ!」
インテリ「実は変数でも、数字を入れるバケツと文字を入れるバケツは少し違うんだ。さっきのプログラムを正しく書くと、こうなるね。」
0001#. A$=”WANPAKU”
0002#. PRINT A$
0002#. PRINT A$
WANPAKU
OK
OK
神崎「バケツの名前の最後に$マークがついて……」
ワンパク「紙に書く字は”でカコむってコトか。コレはPRINTでやったコトと似てるな。」
インテリ「$マークを使う変数は「文字変数」や「文字列型の変数」と言ったりするね。とりあえず文字を入れる変数には$マーク、とおぼえておけば大丈夫!」
ワンパク「でもよォ、コレ変数じゃなくてもデキるコトばっかりじゃねェの? そのままPRINT”10”とかPRINT”WANPAKU”で十分じゃねえか!?」
インテリ「たしかに変数が何の役に立つのかは、まだわからないよね。それじゃあ、次からは変数を使ったサンプルを見ていこう!」
- 変数とは
- 名前のついたバケツに、字を書いた紙を入れる。それが変数です。
A=10と書けば、Aというバケツに10という紙を入れることになります。
変数には「文字変数」というパターンもあります。A$=”ABC”というように、名前に$をつけて「”」で囲んだ文字を入れるのが文字変数です。