Case
Synopsis
Case(target,case:rvalue,case:rvalue,...,:default)
引数
target | case 引数と比較する値、変数、または式 |
case | target の値と比較する値、変数、または式 |
rvalue | target と case が完全に一致したときに返される値 |
default | オプション — target に一致する case がない場合に返される値 |
概要
Case 関数は target と case のリスト (リテラルや式) を比較し、最初に一致した case の値に関連付けられている rvalue を返します。case:rvalue の組み合わせは無制限に指定できます。case は指定された順番 (左から右へ) に比較されます。最初に完全に一致したときに比較は終了します。
一致する case がない場合は、default が返されます。一致する case がなく、default が指定されていない場合は、エラーが返されます。
引数
target
CASE は target を一度評価し、その結果を左から右に case と 1 つずつ比較します。
case
case はリテラルや式ですが、リテラルはコンパイル時に評価できるので、式よりも、リテラルを照合した方がはるかに効率的です。各 case は rvalue と組み合わせる必要があります。case と rvalue の組み合わせは無制限に指定できます。
rvalue
rvalue はリテラル、または式です。rvalue はすべて特定の case と関連付けられます。rvalue と case はコロン (:) で結合します。また、他のペアとの間はコンマ (,) で区切ります。rvalue は、target 値が、関連する case 値と完全に一致する場合に返される値です。左から右に照合し、最初に完全に一致したものだけが、rvalue を返します。
default
default 引数はリテラル、または式です。default も case:rvalue の形式で指定しますが、コンマ区切り文字とコロンの間に case は指定しません。default は常に CASE 関数の最後の引数に指定します。default 値は、完全に一致するものがない場合に返される値です。
例
以下は、数値入力を受け、適切な説明文字列を書き出す Case の例です。
input "Input a number 1-3: ",x
multi=CASE(x,1:"single",2:"double",3:"triple",:"input error")
PrintLn multi