CASE

目的

CASE ステートメントは、いくつかのステートメント・ブロックの中から 1 つを実行のために選択するための簡潔な構文を備えている、CASE 構文の中の CASE ステートメント・ブロックを開始します。

構文



>>-CASE--case_selector--+---------------------+----------------><
                        '-case_construct_name-'
 
 

case_selector



>>-+-DEFAULT------------------------------------------+--------><
   |    .-,--------------------------------------.    |
   |    V                                        |    |
   '-(----+-case_value-------------------------+-+--)-'
          +-low_case_value--:--high_case_value-+
          +-low_case_value--:------------------+
          '-:--high_case_value-----------------'
 
 

case_construct_name
CASE 構文を識別する名前です。

case_value
整数、文字、または論理型のスカラー初期化式です。

low_case_value、high_case_value
これらは、それぞれ整数、文字、または論理型のスカラー初期化式です。

規則

SELECT CASE ステートメントにより決定するケース指標 は、CASE ステートメント内の各 case_selector と 比較されます。 一致すると、CASE ステートメントに関連する stmt_block が実行されます。 一致しないと、stmt_block は実行されません。 どのケース値範囲もオーバーラップすることはできません。

一致があるかどうかは次のように判別します。

case_value

データ型: 整数、文字、または論理
整数および文字の一致: case index = case_value
論理の一致: case index .EQV. case_value が真

low_case_value : high_case_value

データ型: 整数または文字
一致: low_case_value <= case index <= high_case_value

low_case_value :

データ型: 整数または文字
一致: low_case_value <= case index

: high_case_value

データ型: 整数または文字
一致: case index <= high_case_value

DEFAULT

データ型: 適用外
一致: 他に一致がない場合

複数の一致があってはなりません。 一致が 1 つの場合、その一致した case_selector に関連 するステートメント・ブロックが実行され、ケース構文の実行が完了します。 一致がない場合、ケース構文の実行が完了します。

case_construct_name を指定する場合は、SELECT CASE ステートメントおよび END SELECT ステートメントに指定した名前に一致してい なければなりません。

DEFAULT はデフォルトの case_selector です。 CASE ステートメントのうち case_selector と して DEFAULT を持てるのは 1 つだけです。

各ケース値は、SELECT CASE ステートメントに定義してある case_expr と同じデータ型でなければ なりません。 型なし定数または BYTE 名前付き定数が case_selectors で検出された場合、その定数は case_expr のデータ型に変換されます。

case_expr およびケース値が文字型の場合、それらの長さは異なってもかまいません。 -qctyplss コンパイラー・オプションを指定する と、case_expr として使用される文字定数が文字型として 残ります。文字定数式は型なし定数としては処理されません。

ZERO: SELECT CASE(N)
 
  CASE DEFAULT ZERO          ! Default CASE statement for
                             ! CASE construct ZERO
       OTHER: SELECT CASE(N)
          CASE(:-1)          ! CASE statement for CASE
                             ! construct OTHER
             SIGNUM = -1
          CASE(1:) OTHER
              SIGNUM = 1
       END SELECT OTHER
  CASE (0)
    SIGNUM = 0
 
END SELECT ZERO

関連情報

IBM Copyright 2003