if、then、else の各コマンドは組み合わされて単純な制御構造を作ります。
表 4-21に条件付き実行フロー制御用のコマンドを示します。
表 4-21 if...else...then コマンド
コマンド |
スタックダイアグラム |
説明 |
---|---|---|
if |
( flag -- ) |
flag が true の場合、このコマンドの後のコードを実行します。 |
else |
( -- ) |
if が false の場合、このコマンドの後のコードを実行します。 |
then |
( -- ) |
if...else...then を終了します。 |
これらのコマンドの書式は次のとおりです。
flag if (true の場合これを実行) else (false の場合これを実行) then (通常どおりに実行を継続) |
または
flag if (true の場合これを実行) then (通常どおりに実行を継続) |
if コマンドはスタックからフラグを 1 つ「消費」します。そのフラグが true (ゼロ以外) であれば、if の後のコマンドが実行されます。true でなければ、(存在する場合) else の後のコマンドが実行されます。
ok : testit ( n -- ) ] 5 > if ." good enough " ] else ." too small " ] then ] ." Done. " ; ok ok 8 testit good enough Done. ok 2 testit too small Done. ok |
] プロンプトは、それが現れる間は、新しいコロン定義の作成の途中であることをユーザーに示します。このプロンプトはセミコロンを入力して定義を終了すると ok に戻ります。