COBOL2002 使用の手引 手引編


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.