#条件反復(<条件式>, <繰返し式>[, <限界回数>])

条件を満たす間,式を繰返し評価します。


構文

#条件反復(<条件式>, <繰返し式>[, <限界回数>])
#WHILE(<条件式>, <繰返し式>[, <限界回数>])

引数

<条件式>
真偽を判定する任意の値を与えます。一般には,繰り返して評価するうちに偽になる式を書きます。
<繰返し式>
<条件式> が真のとき評価する式を与えます。括弧で括られた <式リスト> を書き,複数の式を順番に評価させることができます。
<限界回数>
無限に繰返しが続くのを防止するための限界回数を指定します。省略した場合は,65536 回で打ち切られます。0 以下を指定すると 1 回も繰り返されません。

この関数は主に変数と組み合わせて使用します。
$X := [A], #条件反復($X > 0, ([B] := [B]+$X, $X := $X-[C]))
与えられた住所などの長い文字列から,その先頭部分の最長一致を別の表から表引きするには,たとえば次のようにします。この例では先頭の 5〜14 文字を調べます。
$住所 := [住所],
$N := 5,  -- 最小文字数
$M := 10, -- 繰返し回数 ($N〜$N+$M-1 文字を調べる)
$B := 1,
$C1 := NULL,
#条件反復($B, ($C2 := $C1,
               $C1 := #表引き('XXX.dpt',
                              #部分一致(.[ADDR],
                                        #部分文字列($住所, 1, $N)+'*'),
                              .[CODE]),
               $B := $C1, $N := $N+1), $M),
$C2
結果が $C2 に求まります。

解説

戻り値

関連項目

→論理値
→#条件
→#条件選択
→WHILE ステートメント
DBProヘルプ目次へ