不定ループ2

BEGIN ... UNTIL



BEGIN ... UNTILは単純な条件判定ループです。BEGINとUNTILに挟まれた部分のコードは、必ず一回は実行されます。その際に、トップスタックに判定のための真理値を残す必要があります。UNTILはその値を喰って、真(=非0)であれば、ループをやめて次に移ります。偽(=0)であれば、BEGINまで差し戻し、繰り返します。つまり、UNTILの意味は判定値が真となるまで繰り返す、ということです。
BEGIN  コード  判定値  UNTIL


BEGIN ... NUNTIL



変異版として、BEGIN ... NUNTILがあります。NUNTILの意味はnot UNTILで、真偽の基準が逆になります。つまり、判定値が真であれば繰り返し、偽であればループを抜けます。判定値が偽となるまで繰り返す、ということです。

インデックス値"i"は、利用できません。他の全てのループ同様コンパイル状態での利用のみです。

ノーマルな判定条件の如何にかかわらず緊急にループを抜けるには、特別の判定式で条件づけてEXITを呼びます。確定ループの場合の"UNLOOP"のような、特別な脱出準備ワードは必要ありません。ただし、EXITでループを抜けるときには、当のループだけではなくて、それを定義内に含んでいるワード全体の処理を抜け出すことになります。


関連項目:






最終更新:2019年06月18日 14:42