ILE COBOL 解説書

選択サブジェクトと選択オブジェクトの比較

EVALUATE ステートメントの実行は、あたかも、選択サブジェクトのセットを満足させる WHEN 句があるかどうかを判別するために、 選択サブジェクトおよび選択オブジェクトに割り当てられた値を比較するように進行します。 この比較は、次のように進められます。

  1. 最初の WHEN 句に対する選択オブジェクトのセット内の各選択オブジェクトが、 選択サブジェクトのセット内の同じ順位を持つ選択サブジェクトと比較されます。 比較を実行する場合には、次の条件の 1 つを満たしていなければなりません。
    1. 比較する項目に数字または非数字の値、あるいは数字または非数字の値の範囲が割り当てられている場合には、 比較の規則により、選択オブジェクトに割り当てられた値、または値の範囲の中の 1 つの値が、選択サブジェクトに割り当てられた値と等しい場合に比較が実行されます。
    2. 比較する項目に真理値が割り当てられている場合には、 その項目に同じ真理値が割り当てられた場合に比較が実行されます。
    3. 比較する選択オブジェクトに ANY が指定されている場合には、選択サブジェクトの値に関係なく、常に比較が実行されます。
  2. 比較する選択オブジェクトのセット内のすべての選択オブジェクトに対して上記の比較が実行された場合には、 その選択オブジェクトのセットが入っている WHEN 句が、選択サブジェクトのセットの条件を満たす句として選択されます。
  3. 上記の比較が、比較する選択オブジェクトのセット内のすべての選択オブジェクトに対して実行されたわけではない場合には、 その選択オブジェクトのセットは選択サブジェクトの条件を満たしません。
  4. このプロシージャーは、その後の選択オブジェクトのセットで、それらがソース・プログラムに現れる順序で繰り返されます。 これは、選択サブジェクトのセットの条件を満たす WHEN 句が選択されるか、あるいは選択されたすべてのセットがなくなるまで続けられます。


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