TOP概要>変数
 [基本文法]  [変数]  [システム変数]  [マクロ]  [CGレイヤ]  [タスク]  [入力]
■変数


●変数とは

変数とは、ひと言で言うと数値を入れておく箱のようなものです。


●変数の『型』と『種類』

ユーリスでは、変数には以下の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")


※文字列変数を数値変数に変換する際、もし文字列変数の中に、数値化できない文字列が存在していた場合、
代入結果は不確定となります。(β版仕様)