ELSE (ELSE)
実行可能場所:
|
パラメーター 例 エラー・メッセージ |
ELSE(ELSE)コマンドは,条件付きで処理される別のコマンドを指定するためにIFコマンドと一緒に使用されます。ELSEコマンドは,前のIFコマンドで論理式評価の結果が偽の場合にだけ処理されます。結果が真の場合には,ELSEコマンドおよび関連したコマンドは処理されません。
ELSEコマンドは,偽条件の場合に処理するために,CLコマンドまたはDOグループを指定することができます。
各IFコマンドの後にELSEコマンドは必要ありませんが,コーディングされる各ELSEコマンドでは,対応するIFコマンドがその前になければなりません。IFコマンドでネストされたレベルを使用した場合には,指定されたELSEは,他のELSEコマンドとまだ一致していない,最も内側のIFコマンドと常に一致しています。ELSEコマンドは任意指定ですが,一致するすべてのELSEコマンドをコーディングすることによって,すべてのネスト・レベルの開始と終了の位置が分かりやすくなります。
制約事項: ELSEコマンドはCLプログラムまたはILE CLプロシージャー内でのみ有効です。対応するIFコマンドがその前になければなりません。
| 上 |
コマンド (CMD)
対応するIFコマンドの式の評価の結果が偽の場合に処理される1つ以上のコマンド(DOグループ内で)を指定します。
このパラメーターで指定したコマンドがDOコマンドである場合には,DOグループ内に指定したすべてのコマンドが,パラメーターによって指定したコマンドの一部と見なされます。コマンドが指定されていない場合には,偽条件では処置は取られません。
CMDキーワードによって指定されたコマンドがそのキーワードと同じ行にコーディングされない場合には,同じ行のCMDの後に左括弧をコーディングし,その次に+または-を続けて継続を示す必要があります。次に,そのコマンドと右括弧を次の行にコーディングすることができます。例えば,次のとおりです。
ELSE CMD( +
GOTO C)
コマンドの任意の部分を次の行に続ける場合には,継続文字(+または-)を指定しなければなりません。
DOコマンドが指定された場合には,DOコマンドだけ(DOグループの一部として指定したコマンドではない)が括弧に入れられます。例えば,次のとおりです。
ELSE CMD(DO)
CMD1
CMD2
.
.
.
ENDDO
次のコマンドは,CLプログラムまたはILE CLプロシージャー内では有効ですが,ELSEコマンドには指定できません。
- ENDDO (DO終了)
- MONMSG(メッセージ・モニター)
- PGM(プログラム)
- ENDPGM(プログラム終了)
- DCL (CL変数宣言)
- DCLF(ファイル宣言)
- この他のELSEコマンド
- WHEN, OTHERWISE, ENDSELECT
さらに,MONMSGコマンドは,ELSEコマンドの後の次のコマンドとして指定することはできません。
| 上 |
例
例1: ELSEおよびIFコマンドの使用
IF (&A *GT &B) THEN(CHGVAR VAR(&A) VALUE(&B)) ELSE (CHGVAR &B &A)
&Aの値が&Bの値より大きいと,&Aは&Bに等しく設定されます。&Aが&B以下であると,テスト結果は偽になります。ELSEコマンドにあるCHGVARコマンドが処理され,&Bの値は&Aと同じ値に設定されます。(CHGVARコマンドとそのパラメーターについては,CHGVAR(変数変更)コマンドを参照してください。)
例2:コマンドのネスト・レベル
IF COND(&A *EQ &B) + THEN(IF (&C *EQ &D) + THEN(IF (&C *EQ &F) THEN(DO))) CMD1 CMD2 : ENDDO ELSE CMDX ELSE CMDY ELSE DO
この例は,ELSEコマンドが各IFコマンドと関連付けられている場合の,IFコマンドのネスト・レベルの使用を示しています。ELSEコマンドを使用すると,IFコマンドのネスト・レベルが識別しやすくなります。
| 上 |
エラー・メッセージ
なし
| 上 |