高水準の case コマンドであり、複数の候補のなかから代替実行フローを選択するために用意されています。このコマンドの方が、深く入れ子になった if...then コマンドよりも読みやすいという利点があります。
表 4-22 に条件付き case コマンドを示します。
表 4-22 case 文コマンド
コマンド |
スタックダイアグラム |
説明 |
---|---|---|
case |
( selector -- selector ) |
case...endcase 条件付き構造を開始します。 |
endcase |
( selector | {empty} -- ) |
case...endcase 条件付き構造を終了します。 |
endof |
( -- ) |
条件付き構造内の of...endof 句を終了します。 |
of |
( selector test-value -- selector | {empty} ) |
case 条件付き構造内の of...endof 句を開始します。 |
case コマンドの使用例を示します。
ok : testit ( testvalue -- ) ] case 0 of ." It was zero " endof ] 1 of ." It was one " endof ] ff of ." Correct " endof ] -2 of ." It was minus-two " endof ] ( default ) ." It was this value: " dup . ] endcase ." All done." ; ok ok 1 testit It was one All done. ok ff testit Correct All done. ok 4 testit It was this value: 4 All done. ok |
(省略可能な) default 句はまだスタックにあるテスト値を使用できますが、その値を削除してはなりません ("." でなく "dup ."を使用してください)。of 句が正常に実行されれば、テスト値はスタックから自動的に削除されます。