RPL (プログラミング言語)
IF/THEN/ELSE/END構造は、基本的な条件分岐をサポートする。この制御構造の基本的な文法は以下のようになる。
以下の例はスタックの底辺(スタックレベル1)の値が"1"であるかどうかをテストし、そうであれば、スタックの底辺を"Equal to one"に置き換える。
(説明)上のコードの条件式は '1 ==' である。IF文はこの条件式を実行する。1はオブジェクトなのでスタックに入れられる。==はコマンドである(一般的な言語の場合、==は演算子だが、RPLではコマンドである)。==コマンドはスタックから2つのオブジェクトを取り出すので、このプログラムを実行する前にユーザーが手動でスタックに値を入れておく必要がある。そうしないとスタックに1しかオブジェクトがないので、==コマンドが2つのオブジェクトを取り出せない。==コマンドは2つのオブジェクトが同じ時は真(1)、異なる時は偽(0)をスタックに入れる。
WHILE/REPEAT/END構造は、ループの開始地点で条件テストをする回数未定のループをサポートする。WHILE/REPEAT/END構造の文法は以下のようになる。
FOR/NEXTとSTART/NEXTは1回のループでインデックス変数を+1することしかできない。しかし、NEXTを増分値とSTEPで置き換えると、インデックス変数は+1以外の値で増やしたり減らしたりできる。例えば、以下のループはインデックス変数を1回のループ毎に-2加算することによって、10から2へ逆行するようにループする。