case

EGL case 文は、文の複数のセットの始まりを示します。 この複数のセットの内、実行されるセットは 1 つだけです。case 文は、各 case 文節の最後に break がある C または Java™ 言語の switch 文と等価です。

case 文の構文図
criterion
ConverseVar.eventKey または sysVar.systemType を含む、項目、定数、式、リテラル、またはシステム変数。

criterion を指定する場合、 後続の when 文節があれば、それぞれに、1 つ以上の matchExpression インスタンスを 含める必要があります。 criterion を指定しない場合、 後続の when 文節があれば、それぞれに、論理式 を含める必要があります。

when
これらの場合にのみ呼び出される文節の先頭。
  • criterion が指定され、when 文節が、criterion と等しい matchExpression を含む最初の文節である場合。
  • criterion が指定されず、when 文節が、 真と評価される論理式を含む最初の文節である場合。

when 文節が呼び出されても何の効果もないようにしたい場合は、EGL 文を含めずに文節をコーディングします。

case 文には、when 文節がいくつあっても構いません。

matchExpression
次の値のいずれかです。
  • 数値またはストリング式
  • ConverseVar.eventKey または sysVar.systemType との比較のためのシンボル

matchExpression 値のプリミティブ型は、criterion 値のプリミティブ型と互換性がなければなりません。互換性の詳細については、『論理式』を参照してください。

logicalExpression
論理式
statement
EGL 文。
otherwise
when 文節が実行していない場合に呼び出される文節の先頭。

when または otherwise 文節中で文が実行された後は、case 文の直後の EGL 文に制御が渡されます。 どのような状況でも、制御が次の when 文節に渡されることはありません。 呼び出されている when 文節がなく、デフォルトの文節が使用されていない場合も、case 文が終わった直後に、制御は次の文に渡され、どのエラー状態も有効になりません。

case 文の例は、以下のとおりです。
  case (myRecord.requestID)
    when (1)
      myFirstFunction();
    when (2, 3, 4)
      try
        call myProgram;
      onException
        myCallFunction(12);
      end
    otherwise
      myDefaultFunction();
  end

単一の文節に matchExpression の複数インスタンス (上の例では 2、3、4) が含まれている場合、これらのインスタンスは左から右に評価され、criterion 値と一致する matchExpression が 1 つ検出されるとすぐに評価は停止します。

関連タスク
EGL 文およびコマンドの構文図

関連リファレンス

EGL 文
論理式
eventKey
systemType

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.