Start!

Step1

Step2

Step3

Step4

Step5

Step6

Step7

Step8

Final

Special thanks

Cover


step7:変数を使ってみよう

そろそろスクリプトが長くなってきましたよね。こうなると、複雑で読 みにくくなってくることがあります。そんな時に便利なのがコメントで す。コメントとは、スクリプトの中に注釈として好きな文字を入れてお くこと。でも、それが命令と勘違いされては困るのでコメントの書き方 にもルールがあります。たとえば、

; この行はコメントでーす
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という数字を入れる」

ということだと思ってください。これをスクリプトで書くと、

x=100

になります。このように変数(いれもの)に数字を入れることを「代入」 と呼びます。代入を行なうと、変数に数字が記憶され、それ以降はその 変数を数字のかわりとして使うことができるようになります。



「代入」とは、変数に数値を覚えさせること
「代入」は、「変数名」+「=(イコール)」+「数値」で行なう


というのをよく覚えておいてください。

hensu

=

1234

|

変数名

代入する数値


代入だけは、他の命令と違って書き方が特殊ですが、算数の式と似てい るのでわかってしまえば簡単です。 変数名は、英文字(20文字以内)の名前をつけたもので、 覚えさせられる数値は、「123」のような整数値か、「1.5」のような小数値になります。

変数名には、さらにルールがあります。命令と同じ単語は使ってはいけ ません。命令か変数かわからなくなっちゃいますからね。あと、前に説明したラベルと同じ名前を使ってもいけません。

変数は好きな時に代入することができ、スクリプトの中で何度でも変更 することができます。1つの変数が覚えているのは1つの数値だけです から、最後に代入した数値が常に記憶されてることになります。 たとえば、

hen=150
cls 1
hen=50


のようなスクリプトは、1行目で変数henに150という数値を代入しまし たが、3行目には変数henは50に変更されています。この時点ですでに前 に代入した150は消えてなくなってしまいます。

でもここで言っているだけでは、やっぱりいまひとつ解りませんよね。 そこで、変数の記憶している数値を実際に確かめてみましょう。 前に出てきた「mes」命令でそれができます。「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


というスクリプトは結局、

pos 150,80

と指定しているのと同じことなのです。 数字の代わりに、名前を使ってるだけなんじゃないかー。と思うかもし れません。いやいやしかし、これは実はとても応用のきく便利なものな のです。そのカギを握るもの。それが数式です。

いままでパラメータとして数値を入れる場所には、100とか20とかいう 数を直接書いていました。そしてさらに、それ以外に変数を書いてもい いということも覚えましたね。でもでもしかし、いやいや実は、 数式を書いてもよかったのです。 えーーー?? 今度は数式?? また別な要素が?? と思うのは間違いで、数字と変数を計算式とおり混ぜて書くことができ るということなのです。それが数式。つまり、



数式とは、数値と変数、またはそれらを計算式でつなげて書くこと

なのです。計算式とは、つまり
1+1
とか、
125+200-32
とか。いわゆる、算数の式です。だから、
pos 150,100
じゃなくて、
pos 100+50,50*2
でもいいのです。これも「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です。このように、もとの変数の値を 計算によって変化させる…というパターンはよく使うことが多いので、 決まり文句だと思って覚えてしまってもいいでしょう。 さあ、だいたいの変数の使い方、理解できましたか?? この次のパートでは、さらにその応用を説明していきましょうね。

ONION software Copyright 1997-2009(c) All rights reserved.