チェーン・リストの終わりの検査

この例のチェーン・リストはセットアップ済みなので、最後のレコードには無効なアドレスが入っています。 そのためには、最後のレコード中のポインター・データ項目に値 NULL を代入します。

ポインター・データ項目に値 NULL を代入する方法として、次の 3 とおりの方法があります。

チェーン・リスト中の最後のレコードのポインターにヌル値が入っている場合、 そのリストの終わりを検査するためのコードは次のようになります。

   IF PTR-NEXT-REC = NULL
                  
·
·
·
(logic for end of chain)

リストの終わりに達していない場合は、レコードを処理して次のレコードに移動します。

プログラム CHAINLST では、次のような「DO WHILE」構造を使用して、 チェーン・リストの終わりに関するテストを行っています。

     PERFORM WITH TEST BEFORE UNTIL ADDRESS OF SALARY-REC = NULL
      IF DEPT = DEPT-X
        THEN ADD SALARY TO DEPT-TOTAL
        ELSE CONTINUE
      END-IF
      SET ADDRESS OF SALARY-REC TO PTR-NEXT-REC
     END-PERFORM