YU-RIS サポート掲示板

0203 Ver0.155
投稿者:たくみ 2005/05/18(水) 03:32

Ver0.155をリリースしました。
って、これ書いてる時点で0.157出てますけど…(;
我ながらペース早くてテキストまで書いてる時間が…(;

■ループ命令の中でループカウンタを取得できるようになりました。
ループカウンタというのは簡単に言うと、ループした回数が入っている変数です。
システム変数 @_LC がそのループカウンタで、LOOP 命令で1にセットされ、
その後ループする度に @_LC に1が加算されていきます。
例えば、
LOOP[SET=5]
  ループカウンタの値は@[_LC]です。
LOOPEND[]
として実行すると、
ループカウンタの値は1です。
ループカウンタの値は2です。
ループカウンタの値は3です。
ループカウンタの値は4です。
ループカウンタの値は5です。
と表示され、@LC の値が逐次変わっていってるのがわかります。

また、
LOOP[SET=10]//※1
  LOOP[SET=5]//※2
    ループカウンタの値は@[_LC]です。
  LOOPEND[]
LOOPEND[]
このように多重ループにした場合どうなるかと言うと、直前のループ(※2のほうのループカウンタ)が
取得されます。もし※1のループカウンタを、※2のループ内で使いたいという場合は、
LOOP[SET=10]//※1
  @LC1 = @_LC
  LOOP[SET=5]//※2
    ループカウンタの値は@[LC1]と@[_LC]です。
  LOOPEND[]
LOOPEND[]
このようにすることで取得、保持できます。


■IFBREAK, IFCONTINUE, LOOPBREAK, LOOPCONTINUE 命令それぞれに LV キーワードを実装しました。
これも具体例で説明します。

IF[〜〜]
  IF[〜〜]
    あああ
    IFBREAK[LV=2]
    いいい
  IFEND[]//※1
  ううう
IFEND[]//※2
えええ

これを実行した場合、普通なら「あああ」と表示され、そのあと IFBREAK で次の IFEND(※1) まで飛び、
その次の「ううう」が表示され、そして最後に「えええ」と表示されるハズですが、
IFBREAK[LV=2] と指定すると、IFEND 2つ分(正確には2レベル分)戻れ、という意味になります。つまり、
最初から順を追っていくとまず「あああ」と表示され、そのあとの IFBREAK で ※2のIFEND まで飛び、
「えええ」と表示される形となります。
また、IFCONTINUE に関しては、

IF[〜〜]//※1
  IF[〜〜]//※2
    IFCONTINUE[LV=2]
  IFEND[]
IFEND[]

IFCONTINUE で、通常※2の位置に戻るところを、LV=2 なので※1の位置に戻る、といった感じになります。
LOOP, LOOPCONTINUE に関しても全く同じ扱いです。
マニュアルのほうでも説明してありますので合わせてお読みください。


- 関連一覧ツリー (■ をクリックするとツリー全体を一括表示します)