■変数
●変数とは
変数とは、ひと言で言うと数値を入れておく箱のようなものです。
●変数の『型』と『種類』
ユーリスでは、変数には以下の3つの『型』があります。
・INT (整数型。-9223372036854775808〜9223372036854775807 の範囲の値が扱えます。64bit精度です)
・FLT (実数型。これ、といった範囲はないのですが結構精度はあります。64bit精度です)
・STR (文字列型。半角および全角文字が格納できます)
そして、変数の『種類』としては以下の2種類があります。
・グローバル変数 (全てのファイルからその変数が使用できる)
・ローカル変数 (変数を宣言したファイル内でのみ使用できる)
●書き方
書き方としては、変数名の先頭に@をつけます。
@変数名
文字列変数の場合は、変数名の先頭に$をつけます。
$変数名
この変数を式の中に記述することが出来ます。
CG[ID=BG X=@A Y=@B FILE=$FILENAME]
変数はまず最初に宣言しないと使用することが出来ません。
宣言する際、グローバル変数を宣言するかローカル変数を宣言するかで、宣言する場所やコマンドが
変わってきます。
グローバル変数を宣言する場合、global.ystファイルの中で宣言しなくてはなりません。
そして、宣言するために使用するコマンドは、G_INT, G_FLT, G_STR となります。
G_INT[@A=5] ←整数型の変数Aを宣言し、初期値として5を代入
G_FLT[@B] ←実数型の変数Bを宣言し、初期値を省略した場合0が代入される
G_STR[$F] ←文字列型の変数Fを宣言し、初期値を省略した場合空の文字列が代入される
また、ローカル変数を宣言する場合、任意のファイルで記述する事が出来ます。
宣言に使用するコマンドは、INT, FLT, STR となります。
INT[@A=3]
FLT[@C]
STR[$F]
変数名の一文字目に「 _ 」アンダーバーを使うことは出来ません。
システム変数用に予約されている為です。
システム変数とは、システムが自動的に用意する変数で、例えば日付情報や
キー押下状態などの情報などが格納されています。
詳しくは「システム変数」の項目を参照ください。
●配列変数を使う
ユーリスでは配列変数が使用できます。
β版では8次元までの配列を扱うことが出来ます。
宣言の仕方は以下のようになります。
[例1] 要素を0〜9まで10個もつ一次元配列の変数Aを宣言し、全ての要素の初期値を0にする
INT[@A(10)]
[例2] 二次元配列の変数Bを宣言し、全ての要素の初期値を5にする
INT[@B(10,5)=5]
[例3] 二次元配列の文字列変数Sを宣言し、全ての要素に「GAME」という文字列を格納する。
STR[$S(10,5)="GAME"]
●変数に値を入れる
正式には LET命令 というのを使いますが、コマンドの記述を省略して
以下のように記述できます。
[例1] 変数Aに5を代入する
@A=5
[例2] 配列変数B(2,3)に式の結果を代入する
@B(2,3)=4+@A*3
[例3] 変数Cに10を加算する
@C=@C+10 または @C+=10
[例4] 変数Dを2で割る
@D=@D/2 または @D/=2
[例5] 変数Eを5で割り、その余りを代入する
@E=@E%5 または @E%=5
[例6] 文字列変数Sに「ABC」と「.BMP」を連結して格納する
$S="ABC"+".BMP"
[例7] 文字列変数Sに「ABC」と文字列変数Fに格納された文字列を連結して格納する
$S="ABC"+$F
●数値型/文字列型を変換する
式の中で、「数値型を文字列型」に変換したり、「文字列型を数値型」に変換したりすることができます。
それぞれ、「$()」、「@()」を使用します。(※ver0.281より仕様変更されました)
[例1] 数値変数Bの123という値を、文字列型に変換し、文字列変数Aに格納する。
STR[$A]
INT[@B=123]
$A=$(@B)
[例2] 文字列変数Bの「123」という文字列を、数値型に変換し、数値変数Aに格納する。
INT[@A]
STR[$B="123"]
@A=@($B)
以上のように利用できます。
また、式も書くことができます。
[例3] @B*2+1 の値を、文字列型に変換し、文字列変数Aに格納する。
STR[$A]
INT[@B=123]
$A=$(@B*2+1)
[例4] "123"+"45"の文字列を、数値型に変換し、数値変数Aに格納する。
※数値変数Aには 12345 の値が入ります。
INT[@A]
@A=@("123"+"45")
※文字列変数を数値変数に変換する際、もし文字列変数の中に、数値化できない文字列が存在していた場合、
代入結果は不確定となります。(β版仕様)