サイトのロゴ opensource COBOL Programmer’s Guide

前へ/目次/次へ

6.38.1. SEARCH文の書き方1 ― 順次探索

図6-85-SEARCH構文(順次探索)

alt text

SEARCH文は、テーブルを順に探索するために使われ、特定の値がテーブル内に配置されるか、テーブルが完全に探索されると停止する。

  1. VARYING句で指定された指標名-1一意名は、USAGE INDEXでなければならない。

  2. VARYING句が指定されていない場合、探索対象のテーブルはINDEXED BY句(5.3を参照)を用いて作成する必要がある。

  3. SEARCH文の実行時に、指標名-1(またはテーブルで定義されているINDEXED BY索引)の現在の値によって、探索プロセスを実行するテーブルの開始位置が定義される。通常は次の例のように、SEARCH文を開始する前に索引値を1に初期化する:
    SET 指標名-1 TO 1
    
  4. 探索プロセス中に条件式-1が評価され、TRUEの場合は命令文-2が実行された後に、制御はSEARCH文の次に移る。

  5. 複数のWHEN句が存在する場合、それぞれの条件式-nが順番に評価され、最初にTRUEと評価された条件式に対応する命令文-nが実行された後に、制御はSEARCH文の次に移る。

  6. TRUEと評価されるconditional-式-nが存在しない場合、指標名-1の値は1ずつ増加する。指標名-1の値がまだテーブル名のOCCURS範囲内にある場合、WHEN句が再度評価される。このプロセスは、WHEN句のconditional-式-nがTRUEと評価されるまで、または指標名-1の値がテーブル名のOCCURS範囲内からなくなるまで継続する。

  7. conditional-式-nがTRUEと評価されず、指標名-1の値がテーブル名のOCCURS範囲内にない場合、AT END句の一部である命令文-1が実行され、制御はSEARCH文の次に移る。AT END句がない場合、制御は単にSEARCH文の次に移される。  

ページトップへ