#条件選択((<条件式>[, <式>]...) [, (<条件式>[, <式>]...)]...)
複数の条件を順番に調べて,最初に真になった条件に対応する式を評価します。
構文
#条件選択([<条件句>...])
#COND([<条件句>...])
引数
<条件句>
順番に評価される条件と,その条件が真になったときに評価される式の組を表わします。
<条件句> ::= (<条件式>[, <式>]...)
<条件式>
真偽を判定する値を与えます。
<式>...
<条件式> が真のとき評価する式の並びを与えます。コンマで区切って何個与えても構いませんが,多くの場合は1個だけを与えます。
例
#条件選択(([A]>0, [A]*10), ([B]>0, [B]*10))
→
10 ([A]=1 のとき)
→
20 ([A]=0, [B]=2 のとき)
解説
#条件選択 は,<条件句> を次のように評価していきます。
<条件式> が真なら <式>... を順にすべて評価して最後の式の結果を返します。<式>... が省略されているときは,<条件式> そのものを結果として返します。このとき,後続する <条件句> は評価されません。
<条件式> が偽なら次の <条件句> の評価を行ないます。次の <条件句> がなければナルを返します。
<式>... の最後の式のデータ型は,すべての <条件句> で同じでなければなりません。<式>... を省略したときは,その <条件句> の <条件式> のデータ型も同じでなければなりません。次は正しくない例です。
#条件選択(([X]>0, 'ABC'), ([Y]>0, 100))
#条件選択(([X]>0, 'ABC'), (100))
戻り値
最初の真になった <条件句> の結果を返します。<条件句> が一つもないか,すべての <条件句> が偽のときはナルを返します。
関連項目
論理値
#条件
#条件反復
SWITCH ステートメント