SELECT[ -- ]SELECT構造は、場合分け実行の速度に関して効率化したCASEスイッチです。速度について効率的な代わりに、ややコードが大きくなり、少し制約の多いものとなっています。使い方はCASE[ ... ]CASEと同じですが、RANGE指定ができません。
: SELECTOR ( n -- )
SELECT[ 0 ]=> コード1
[ 1 ], [ 7 ]=> コード2
[ 3 ]=> コード3 EXIT
DEFAULT=> drop
]SELECT
コード4
;
トップスタック値 |
|
0ならば |
コード1、コード4 |
1または7ならば |
コード2、コード4 |
3ならば |
コード3 |
それ以外ならば |
コード4 |
が実行されます。
範囲指定ができないことに加えて、基準値として利用する数値は、0以上400以下の値でなければなりません。負の値や、400を超える値では、エラーが表示され、コンパイルできません。そのかわり、選択項目数が増えても、速度は変わりません。
基準値はコンパイル時に固定されます。これはCASE[ ... ]CASEと共通です。
関連項目:
最終更新:2018年12月20日 00:45