どんなプログラム言語でも変数と代入が基本中の基本となります。
普段、聞き慣れない言葉ですがプログラミングの世界では頻繁に出てきます。
変数とは、数値や文字列を入れるための入れ物のことです。
代入とは、変数の中身を入れ替える作業を指します。
いくつかの例を見せるので試して下さい。
それぞれの例を実行する前に、NEW命令を使って前のプログラムを消しましょう。
また、画面をクリアしたい時には、CLS命令を使います。
この例では行番号10で、変数Aに5を代入しています。
10 a=5
この書き方に違和感を感じると思います。
それは右の値を左の変数に入れるという仕組みだからです。
ほとんどのプログラム言語で「右辺から左辺へ」のルールが使われています。
慣れるようにして下さい。
行番号20で、変数Bに3を代入しています。
行番号30、40で変数AとBを出力しているのでRUN命令による実行結果は
5
3
ということになります。
行番号20を見て下さい。行番号10で変数Aには5が代入されているので
a=a+7 は
a=5+7 ということになります。
実行結果を見るとちゃんと12になっています。
行番号30を見て下さい。
ダブルクォーテーション(")で囲まれている所は文字列として扱われます。
その後ろの(A+B)は変数同士の足し算として扱われます。
よって、RUN命令の実行結果は
a+b= 15
となる訳です。
ここで少し「あれ?」と思った人は鋭いですね。
プログラムを小文字で入力しても、LIST命令を実行すると
大文字で表示されます。
しかし、行番号30のPRINTの後の文字列 ”a+b=” は大文字に変換されてません。
これは文字列が値として扱われている為、コンピュータの方で勝手に変換しないのです。
今回は文字列の変数を使っています。行番号10を見て下さい。
a の後に$(ダラー) が付いてます。
この$(ダラー)マークが付くと文字列変数として扱うという印になります。
print 命令のなかでの+(プラス)は文字列をつなげて表示せよという命令です。
まず実行結果を見て下さい。
Type mismatch in 30
となっています。
これは「行番号30で、異なる型同士の処理をしようとしている」というエラーです。
30 C$=A$+B
文字列変数 A$ と数値変数 B をつなげて、文字列変数 C$に入れようとしてます。
文字列変数と数値変数はつなげられないのです。
行番号20を見て下さい。
b に$(ダラー)マークを付けて文字列変数にしました。
さらに、数値(175)をダブルクォーテーション(")で囲み
見た目は数値ですが文字列として扱ってます。
行番号30では、文字列変数同士の処理なのでエラーとなりません。
BASICでは変数を手軽に使うことができます。
他の言語では「この変数は整数のみを扱います」などのように使う用途を
前もって宣言する必要があったりします。
ただ、手軽さがある故にデメリットもあるのです。
りんごの数は3と正しく表示されているのに、
バナナの数は0と表示されてます。行番号20で5を代入しているので5と
表示されるはずなのですが…。
行番号40を見て下さい。
実はバナナのスペルを間違えてbanonoとなっています。
つまり、bananaには5を代入しましたがbanonoには何も入れてないのです。
だから0と表示されてしまいました。
BASIC では変数を宣言せずにいつでも使えます。
なので今回のようにスペルミスがあってもエラーとならないのです。
変数の名前を間違えることにより、プログラムが正常に動かず
しかもどこを間違えているのか、なかなか気が付かないという状況が発生し易いです。
エラーが表示されていないけど、正常に動かない
という場合には、変数の名前を間違えてないかチェックしてみて下さい。