XL Fortran for AIX V8.1.1

ランゲージ・リファレンス

CASE

目的

CASE ステートメントは、CASE 構造体の中の CASE ステートメント・ブロックを初期化します。また、このステートメントは 1 つのブロックを実行のために選択するための、非常に簡潔な構文を備えています。

構文



>>-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

関連情報


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]