RPG

482. SELECT-WHENでわかりやすい条件分岐

SELECT-WHEN 分岐をご存知であろうか?
一般に他の開発言語では
SWITCH-CASE文と呼ばれる条件分岐の記述方法な
なかった。
_

旧来のRPG III や初めのころのILE-RPGでは
なかった SWITCH-CASE文の相当する SELECT-WHENと
いう条件分岐が使えるようになっている。

IF-ELSEの条件分岐だけでは
二者択一の条件分岐しか処理できない。

■ IF-ELSE二者択一

       IF KBN = '1'
        :
        ELSE
        :
        ENDIF

■ SELECT-WHEN 複数選択の分岐

        SELECT
        WHEN   KBN = '1'
         :
        WHEN   KBN = '2'
         :
        WHEN   KBN = '3'
         :
        OTHER
         :
        ENDSL

[解説]

ILE-RPG のSELECT-WHEN は 他の開発言語の
SWITCH-CASE文より次の点において優れている。
_

(1)LEAVEは不要

WHEN の後の条件の終わりの LEAVEなどを
書かなくてよい。
他言語のSWITCH-CASE文であれば
CASEの最後にCASEの記述から抜け出るための BREAK命令をいちいち入れなければ
ならないが ILE-RPGでは不要である。

(2)DEFULAT不要

CASE の最後にそれ以外の例外を示す DEFAULTを必ず入れなければ
ならないがILE-RPGでは それ以外を示す OTHER は
必ずしも入れなくてもよい。

(3)条件は自由

CASE で判断記述とする変数はひとつだけであるが
WHEN に続く条件は同じ変数の比較でなくてもよいので
柔軟な比較が可能である。

(4)比較値は自由に宣言が可能

CASE ではC言語の場合は1桁の文字しかしかも等しい場合の比較しかできなかったが
WHEN ではどのような変数に対してでも比較できる柔軟さがある。

… どうであろうか?
ILE-RPG では SELECT-WHEN の条件分岐を効果的に使うことによって
構造化されたスタイリッシュな条件記述が可能になる。
しかも他のオープン系の言語より優れている。
SELECT-WHEN を使えばコーディングも快適になる見やすくわかりやすい記述と
なることはまちがいない。
今後も大いに利用したい命令である。
_