そろそろスクリプトが長くなってきましたよね。こうなると、複雑で読 みにくくなってくることがあります。そんな時に便利なのがコメントで す。コメントとは、スクリプトの中に注釈として好きな文字を入れてお くこと。でも、それが命令と勘違いされては困るのでコメントの書き方 にもルールがあります。たとえば、
; この行はコメントでーす |
mes "メッセージ"; この部分はコメントでーす |
のように使います。つまり
「;(セミコロン)」の後はコメントになり、無視される。 |
ということです。「;」の後には命令を書こうが、文章を書こうがスク リプトの実行には何の影響もありません。ですから、
exec "notepad" | ; メモ帳を起動 |
のように気軽に注釈をつけておくことが可能です。こうすれば、後でス クリプトを見直した時にも、どの行で何が行なわれているかが解りやす くなるので、おすすめですよ。
さて、それでは本題の「変数を使ってみよう」に入りましょう。 そもそも変数って何なんだー、って思うでしょう。いままでは、たとえ ばカレントポジションを変更したければ、
pos 150,80 ; | カレントポジションを(150,80)に変更 |
のように数値を指定していました。これを変数というもので置きかえる ことができます。すると、
x=150 | ; 変数xに150を代入 | |
y=80 | ; 変数yに80を代入 | |
pos x,y | ; カレントポジションを(x,y)に変更 |
こうなります。これでも、カレントポジションは(150,80)に変更されま す。ええーーー?? どうしてーー??
変数はよく、「いれもの」にたとえられます。数値を記憶しておく、「 いれもの」です。「いれもの」には名前をつけておきます。たとえば、
「x という名前のいれもの」 |
「いれもの」には当然、中に何かを入れることができます。
「xといういれものに100という数字を入れる」 |
といった感じで、中に数字を入れておくことができます。この「いれも の」が、すなわち変数。だから、上の言葉は、
「xという変数に100という数字を入れる」 |
ということだと思ってください。これをスクリプトで書くと、
になります。このように変数(いれもの)に数字を入れることを「代入」 と呼びます。代入を行なうと、変数に数字が記憶され、それ以降はその 変数を数字のかわりとして使うことができるようになります。
「代入」とは、変数に数値を覚えさせること |
「代入」は、「変数名」+「=(イコール)」+「数値」で行なう |
というのをよく覚えておいてください。
hensu | = | 1234 |
| | | | |
| | | | |
変数名 | 代入する数値 |
代入だけは、他の命令と違って書き方が特殊ですが、算数の式と似てい るのでわかってしまえば簡単です。 変数名は、英文字(20文字以内)の名前をつけたもので、覚えさせられる 数値は -2147483647 から 2147483647までの整数です。小数や分数は使 えません。
変数名には、さらにルールがあります。命令と同じ単語は使ってはいけ ません。命令か変数かわからなくなっちゃいますからね。あと、前に説 明したラベルと同じ名前を使ってもいけません。
変数は好きな時に代入することができ、スクリプトの中で何度でも変更 することができます。1つの変数が覚えているのは1つの数値だけです から、最後に代入した数値が常に記憶されてることになります。 たとえば、
hen=150 |
cls 1 |
hen=50 |
のようなスクリプトは、1行目で変数henに150という数値を代入しまし たが、3行目には変数henは50に変更されています。この時点ですでに前 に代入した150は消えてなくなってしまいます。
でもここで言っているだけでは、やっぱりいまひとつ解りませんよね。 そこで、変数の記憶している数値を実際に確かめてみましょう。 前に出てきた「mes」命令でそれができます。 「mes」命令は、
で文字列の後に変数の内容を表示できるのです。「+(プラス)」の記号 を使うことで文字列と変数名をどんどんつなげることもできます。 これを使った、次のようなスクリプトを入力してみましょう。
hen=150 |
mes "現在の変数henの数値は、"+hen+"です。" |
hen=50 |
mes "現在の変数henの数値は、"+hen+"です。" |
stop |
このスクリプトを実行してみると…。
現在の変数henの数値は、150です。 |
現在の変数henの数値は、50です。 |
というように表示されます。 つまり、2行目の時点では変数henは150という数値を記憶していました が、3行目に新しく代入があったので、4行目では変数henは50という数 値になっていたのです。
さあ、ここまでわかったところで、もともとの例になっていたスクリプ トに戻ってみましょう。
x=150 |
y=80 |
pos x,y |
というスクリプトは結局、
と指定しているのと同じことなのです。 数字の代わりに、名前を使ってるだけなんじゃないかー。と思うかもし れません。いやいやしかし、これは実はとても応用のきく便利なものな のです。そのカギを握るもの。それが数式です。
いままでパラメータとして数値を入れる場所には、100とか20とかいう 数を直接書いていました。そしてさらに、それ以外に変数を書いてもい いということも覚えましたね。でもでもしかし、いやいや実は、 数式を書いてもよかったのです。
えーーー?? 今度は数式?? また別な要素が?? と思うのは間違いで、数字と変数を計算式とおり混ぜて書くことができ るということなのです。それが数式。つまり、
数式とは、数値と変数、またはそれらを計算式でつなげて書くこと |
なのです。計算式とは、つまり
とか、
とか。いわゆる、算数の式です。だから、
じゃなくて、
でもいいのです。これも「150,100」と同じことになります。 いやいやちょっと「50*2」って何?? と思うでしょう。HSPでは、計算 で使う記号が次のようになっているのです、
「+」は足し算 | 「-」は引き算 |
「*」は掛け算(×) | 「/」は割り算(÷) |
キーボードには「×」「÷」といった記号がないので、かわりに別の記 号を使っています。だから、「50*2」は50掛ける2のこと。これに変数 をまぜることができるわけですから、
x=30 |
y=100 |
pos x,y |
mes "1.ばんめ" |
pos x,y+50 |
mes "2.ばんめ" |
のように、使用できます。この例だと、(30,100)と(30,150)にメッセー ジが表示されます。しかもこの場合、「もうちょっと全体を上にずらし たい…」という時に、2行目のy=100を、y=80などに変更するだけで、2 つのメッセージの場所をいっきに変更することができるというわけ。 この例だとメッセージが2つだけだから楽だけど、これが10行くらいあ るメッセージだとしたら、いちいち「pos」命令の数値を変更していく 苦労と比べるとすごく便利になりますよね。
数式はさらに、変数の代入でも使うことができます。
x=5 |
y=10 |
z=x*8/y |
のように使ってみたり、
hen=0 |
hen=hen+1 |
のように使います。上の例では、1行目で変数henは0が代入されていま す。でも2行目でどうなっちゃうんでしょう?? 2行目で変数henに代入される前の時点での変数henは、0です。それに1 を足したものを、ふたたび変数henに代入するわけですから、変数henは 1になります…と、そんな複雑に考えなくても、
hen=hen+1 は、変数henの内容に1を足す |
というように覚えておくだけでOKです。このように、もとの変数の値を 計算によって変化させる…というパターンはよく使うことが多いので、 決まり文句だと思って覚えてしまってもいいでしょう。
さあ、だいたいの変数の使い方、理解できましたか?? この次のパートでは、さらにその応用を説明していきましょうね。