5.5.1 SEARCH文

SEARCH文は,指定した条件を満足する表要素を探し,対応する指標の値がその表要素を指すようにします。

SEARCH文については,マニュアル「COBOL2002 言語 標準仕様編 10.8.41 SEARCH文」を参照してください。

WHEN指定がある場合の,SEARCH文の流れを次に示します。

図5-6 SEARCH文の処理の流れ(WHEN指定が二つある場合)

[図データ]

流れ図
[図データ]
注※1
SEARCH文中に書かれたときだけ実行されます。
注※2
GO TO文のある無条件文の終了を必要としません。SEARCH文の終わりに制御が移ります。

SEARCH文の例を次に示します。

(例)
多次元の表引き操作とSEARCH文
  • SEARCH文で参照する表が2次元以上の場合,各OCCURS句にINDEXED BYで,指標名を付けておく必要があります。
  • SEARCH文が変更するのは,一意名1用の指標名の値,および(VARYING指定があれば)指標名1または一意名2だけです。
  • 2次元以上の表全体を表引きするには,各次元にSEARCH文を何度か実行しなければなりません。

      01 TBL.
        05 A OCCURS 10
             ASCENDING K1 INDEXED BY IX.
          10 K1 PIC X(2).
          10 B OCCURS 5
               DESCENDING K2 INDEXED BY JX.
            20 K2 PIC 9(4).
            20 C  PIC X(20).

K1の値が 'AB 'で,K2の値が1950のときの表要素Cを求めるには,次のようにします。

          SEARCH ALL A AT END GO TO OWARI
                 WHEN K1(IX) = 'AB'
                      NEXT SENTENCE.
       
          SEARCH ALL B AT END GO TO OWARI
                 WHEN K2(IX,JX) = 1950
                      MOVE C(IX,JX) TO X
                      GO TO OWARI.