COBOL言語のレベル番号「88」によるチェック項目の定義とは | 用語辞典

COBOL(コボル)言語のレベル番号88を使用したチェック項目の定義と使用法とは

辞典・辞書-88-イメージ

COBOL(コボル)言語のレベル番号88とは?

COBOL(コボル)言語において、レベル番号はデータ項目の階層や従属性を表します。レベル番号には、1から49までの通常のレベル番号と、66、77、88といった特殊なレベル番号があり、88は上位のデータ項目に対する条件名と条件を定義するときに使用します。

レベル番号88の形式

レベル番号88で定義した条件名と条件は、命令部での値のチェックに使用することができます。

■書式

 88 条件名 VALUE 値 [,値…].

■構文規則

 <条件名>

  条件名を記述します。記述した条件名は命令部で値のチェックに使用することができます。

 <値 [,値…]>

  条件となる値を文字定数や数字定数で記述します。

■使用例

 レベル番号88を使用して、入力データをチェックするプログラム例をご紹介します。

 プログラム例は、コンソールに1桁の数字の入力を促すメッセージを表示し、数字の9が入力されるまで、入力を促し続けるプログラムです。プログラム例では、「CONSOLE-INPUT」という1桁の入力エリアに対して、レベル番号88で0から8までに「SUJI」、9に「OWARI」という条件名を定義し、入力チェックに使用しています。

辞典・辞書-88-使用例

■実行結果

はじめに入力を促すメッセージが表示されます。

辞典・辞書-88-実行結果

数字の0を入力してみましょう。

辞典・辞書-88-入力例1

再度、入力を促すメッセージが表示されました。次に数字の8を入力してみましょう。

辞典・辞書-88-入力例2

再度、入力を促すメッセージが表示されました。次に英字のAを入力してみましょう。

辞典・辞書-88-入力例3

エラーメッセージが表示され、入力が促されました。次に数字の9を入力してみましょう。

辞典・辞書-88-入力例4

プログラムが終了しました。

レベル番号88のCOBOL(コボル)言語における基本事項やルールについて

レベル番号88の定義は、チェック対象項目を定義した直後に記述します。チェックしたい項目が複数ある場合、それぞれの項目に対して、レベル番号88で条件名と値を定義する必要があります。条件名は重複して定義することはできません。

COBOL(コボル)言語のレベル番号88を使うときの注意点

レベル番号88を使用すると、データのチェック部分のコーディングを簡素化することができますが、同じ条件名で複数のデータをチェックすることができませんので、同じ条件であっても複数の条件名を定義しなければならない場合があります。例えば入力条件として、値域が1から5までという条件があり、データ項目AとBに対し、同じ条件を適用したい場合などです。

同じ条件に対してたくさんの条件名があると、プログラムがわかりにくくなってしまうことがありますので、わかりにくくならないように注意してください。

レベル番号88を使ったCOBOL(コボル)プログラムの活用方法

レベル番号88の条件として、値を書き連ねることもできますが、範囲を指定することもできます。範囲を指定する場合はTHRUを使用します。

■書式

 88 条件名 VALUE 値 TRUE 値.

「COBOL(コボル)言語のレベル番号88とは?」でご紹介したサンプルプログラムでは、データ項目が取り得る値をレベル番号88で条件として羅列していましたが、ここでは条件に範囲を指定する方法をご紹介します。

サンプルプログラムでは、「COBOL(コボル)言語のレベル番号88とは?」でご紹介したサンプルプログラムのレベル番号88の条件を範囲指定に変更しています。

変更箇所は、赤マーカーの部分です。

   
  1. ******************************************************************
  2. * Author:
  3. * Date:
  4. * Purpose:
  5. * Tectonics: cobc
  6. ******************************************************************
  7. IDENTIFICATION DIVISION.
  8. PROGRAM-ID. 88-SAMPLE2.
  9. DATA DIVISION.
  10. FILE SECTION.
  11. WORKING-STORAGE SECTION.
  12. 01 WORKING-AREA.
  13. * コンソール入力バッファ
  14. 03 CONSOLE-INPUT PIC X(1).
  15. 88 SUJI VALUE 0 THRU 8.
  16. 88 OWARI VALUE 9.
  17.  
  18. PROCEDURE DIVISION.
  19. *-------------------------------------------
  20. * 主手続
  21. *-------------------------------------------
  22. MAIN-PROCEDURE.
  23. * コンソール入力エリアの初期化
  24. MOVE SPACE TO CONSOLE-INPUT.
  25.  
  26. EXEC-DISPLAY-INPUT-PROC.
  27. * コンソール表示&入力
  28. DISPLAY "数字を1文字入力してください".
  29. DISPLAY "0-8:CONTINUE  9:EXIT".
  30. ACCEPT CONSOLE-INPUT FROM CONSOLE.
  31.  
  32. * 0から8が入力された場合、コンソール表示&入力を繰り返す
  33. IF SUJI THEN
  34. GO TO EXEC-DISPLAY-INPUT-PROC
  35. END-IF.
  36.  
  37. * 9が入力された場合、プログラムを終了する
  38. IF OWARI THEN
  39. GO TO END-PROC
  40. END-IF.
  41.  
  42. DISPLAY "入力された値は数字ではありません".
  43. GO TO EXEC-DISPLAY-INPUT-PROC.
  44.  
  45. END-PROC.
  46. STOP RUN.
  47. END PROGRAM 88-SAMPLE2.

■実行結果

はじめに入力を促すメッセージが表示されます。

辞典・辞書-88-実行結果

数字の0を入力してみましょう。

辞典・辞書-88-入力例1

再度、入力を促すメッセージが表示されました。次に数字の8を入力してみましょう。

辞典・辞書-88-入力例2

再度、入力を促すメッセージが表示されました。次に英字のAを入力してみましょう。

辞典・辞書-88-入力例3

エラーメッセージが表示され、入力が促されました。次に数字の9を入力してみましょう。

辞典・辞書-88-入力例4

プログラムが終了しました。

「COBOL(コボル)言語のレベル番号88とは?」でご紹介したサンプルプログラムと、全く同じ結果を得られることがおわかりいただけたと思います。

レベル番号88によるデータ項目のチェック条件の定義は、上手く使うとシンプルでわかりやすいコーディングをすることができます。覚えておいて損はない機能ですので、COBOL言語の知識のひとつとして覚えておくといいでしょう。

この記事を読んだ人は、こちらの記事も読んでいます

【未経験者歓迎】COBOLプログラマー・システムエンジニアの募集

株式会社COBOLの求人・転職・募集情報を見る

COBOL入門のカテゴリー

取引企業様 募集中
COBOL技術者 募集
COBOL魂
読者採用
COBOL入門