CASE構造3

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