なんか作って載せます

変数は入れ物。変数は入れ物。変数は入れ物。

第05回:変数を使ってみる。



 今回は変数について。


 ちょっとその前に。
コメントについて

 スクリプトの中に注釈として好きな文字を入れることができます。
 それを「コメント」と呼び、「;(セミコロン)」の後の文字のことを指します。
 セミコロンと文字は離れていても大丈夫です。
 この行で何が行われているのかをメモる時などに便利です。


 それでは本題。
変数使用前

 これを変数に置き換えて書いてみます。

変数使用後

 このように書いても、カレントポジションは(150,80)です。
 「変数=入れ物」と覚えると分かりやすいですね。
 つまり、「x」という入れ物に「150」を、「y」という入れ物に「80」を入れて、その2つの入れ物をpos命令のパラメータとして使ったということです。

 「x=100」などというように、変数に数値を入れることを「代入」と呼びます。
 代入を行うと、変数に数値が記憶されます。そして、その変数を数値の代わりに使えるようになります。

 変数名は、半角59文字以内で名前をつけられます。
 通常は、整数値(-2147483648〜2147483647)を覚えさせることができます。
 小数や文字列なども覚えさせられます。

 変数にはルールがあります。
 まず、命令と同じ単語を使ってはいけません。命令か変数か分からなくなるからです。
 そして、同じ理由でスクリプト内で使用したラベルと同じ単語もNGです。

 変数には好きな時に代入することができ、スクリプト内で何度でも代入した内容を変更することができます。

変数の値を変更

 このスクリプトでは、1行目で変数henに150を代入しましたが、3行目で50をまた代入しているので、最終的に変数henに代入されている値は50ということになります。

 変数に代入できるのは1つの値だけで、同じ変数にいくら数値を代入しようと、自動で足されたり引かれたりすることはありません。後から入れた数値に書き換わるだけです。

mes命令で変数の中身を確かめる

 mes命令を用いて、こんなスクリプトを書きました。

 実行すると、
mes命令実行

 こうなります。

 mes命令で変数の中身を表示させ、ちゃんと記憶されているかを確かめました。

 上のスクリプトで、2行目のmes命令までは変数henの値は150を記憶していて、表示も150となっていました。しかし、3行目に新たに変数henに別の値が代入されたので、4行目のmes命令での変数henの表示が50になったのです。

 このように、「+(プラス)」の記号を使うことで、文字列と変数名をつなげることができます。


 ふむふむ、直接指定しただけでは数値は固定されますが、変数を用いれば数値をどんどん変更できるんですね。これは便利。


 今までは、パラメータとして数値を入れる時、100とか20などの数を直接書いていて、今回、そこに変数を入れてもいいことが分かりました。
 しかし、それだけではありません。

 パラメータには、「数式」を入れてもいいんです。
 つまり、ただ「pos 150,100」と書くのではなく、「pos 100+50,50*2」とかでもいいってことです。

 ちなみに、計算に使う記号は、足し算では「+」、引き算では「-」、掛け算では「*」、割り算では「/」です。
 掛け算が「*」で割り算が「/」なのは、「×」と「÷」がキーボード上に無いので、それらの記号で代用してるってことみたいです。

数式を入れてみた

 このスクリプトを実行すると、「1番目」という文字列がカレントポジション(30,100)に、「2番目」という文字列が(30,150)にそれぞれ表示されます。
 5行目で、yに「+50」されているからですね。


 では、小数を指定する場合はどうすればいいか。

 例えば、「0.1*100」と書いた場合は「10」と同じ結果になります。
 しかし、「100*0.1」と書いた場合、答えが違ってきます。
 前者の場合、先に出てきた小数を基準に計算が行われ、正しい「10」という答えが返ってきます。
 けれど後者の場合、先に出てくるのは整数なので、「0.1」に10を掛けて「1(整数)」とした後、100にも10を掛けて計算が行われるため、返ってくる答えは「1000」となってしまいます。
 これはHSPの仕様らしいです。

 ではどうすればよいのか。

 要は小数を基準に計算されるようにすればいいので、「100.0*0.1」というように、整数にも小数点を付けてしまえばいいのです。これで返ってくる答えは「10」になります。

 それと、これは小学校で習うことだと思いますが、演算子には優先順位があります。
 例えば「4+8*10」という計算を行う場合、前から順に行うのではなくて、「8*10」から先に計算します。つまり、前から順に計算する式に直す場合、「8*10+4」となりますね。
 計算では、掛け算と割り算が優先されます。


変数の代入にも数式

 このように、変数の代入でも数式は使えます。
 このスクリプトでは、変数zには5*8/10で4が入ることになります。

変数に変数を含んだ数式を代入

 1行目で、変数henには「0」が代入されています。
 2行目の変数henには、1行目の変数henに「+1」されるわけですから、「1」が代入されます。


 これらが変数の基本だそうです。
 計算だの何だので複雑そうですが、そんなことはないですね。

 今回はこれで終わり。


2012/04/21/Sat 更新

inserted by FC2 system