COBOL言語の「NUMERIC」の使い方について理解しよう!|基礎ガイド
COBOL(コボル)言語の判断処理で使用するNUMERICとは
COBOL(コボル)言語のNUMERIC文とは?
プログラムの判断処理には、そのデータ項目が数字であるかどうか、英文字であるかどうかを判断する字類条件というものがあります。この字類条件の内、データ項目が数字であるかどうか判断する際に使用されるのが「NUMERIC」です。
例えばあるデータ項目を使った演算処理を行う場合、その項目に英文字が入っていると正しい演算が行えません。この時「NUMERIC」を使用して数字かどうか判断する事により、数字でない場合はエラー処理を行ったり、データを読み飛ばすなどという事を簡単に行う事ができます。では、この「NUMERIC」の使い方についてみていきましょう。
書き方:
データ項目 IS NUMERIC
使用例:
使用例は、画面入力した文字が数字かどうかを判断し、数字であればその値を画面に表示し、数字でなければ数字を入力するよう促すメッセージを表示しています。この使用例のように、NUMERICはIF文の1つの条件として使用する事が一般的です。
実行結果(数字を入力した場合):
実行結果(数字以外を入力した場合):
NUMERIC文のCOBOL(コボル)言語における基本事項やルールについて
- 「データ項目 IS NUMERIC」の間の空白や改行は、自由に設定できます。
- NUMERICは「ANDやOR等」の論理演算子を組み合わせる事で複数条件指定できます。
COBOL(コボル)言語の数字項目を扱う上での注意点
プログラム内のデータ項目が数字項目で定義されていても、必ずしも数字が入っているとは限りません。例えば集団項目に属している基本項目で、集団項目のデータを移送する場合や、複数レコードが格納されているファイルを扱う場合に、このような事象になる事があります。
もし数字以外の情報に気づかずそのまま計算処理等を実行してしまうと、実行時エラーや予期せぬエラーを引き起こす事になりますので、今回ご紹介した「NUMERIC」を活用し数字かどうか判断する事で、予期せぬ事象に対応できるようにしておきましょう。
NUMERIC文を使ったCOBOL(コボル)プログラムの活用法
あるデータ項目が数字項目で定義されていたとしても、ファイル等、複数レコードを扱う際には、数字でないものが格納されているという事は先にもご紹介した通りです。ここでは先にご紹介したNUMERICのサンプルプログラムをファイルのレコードを読む形に変更し、レコード単位に持つ数字項目の値を加算していくプログラムを考えてみましょう。数字かどうか判断する処理の必要性をご理解いただけるかと思います。
サンプルプログラム(NUMERIC_SAMPLE02):
- IDENTIFICATION DIVISION.
- PROGRAM-ID. NUMERIC_SAMPLE02.
- ENVIRONMENT DIVISION.
- INPUT-OUTPUT SECTION.
- *>読み込みファイルを指定する
- FILE-CONTROL.
- SELECT IN01-FILE
- ASSIGN TO "in01.txt"
- ORGANIZATION IS LINE SEQUENTIAL
- FILE STATUS IS IN-FILE-STATUS.
- DATA DIVISION.
- FILE SECTION.
- FD IN01-FILE.
- 01 IN01.
- 03 IN01-SUJI PIC 99.
- WORKING-STORAGE SECTION.
- 01 IN-FILE-STATUS PIC XX.
- 01 WK-SUM-SUJI PIC 999.
- PROCEDURE DIVISION.
- *> 1.初期処理(ファイルオープン)
- OPEN INPUT IN01-FILE.
- READ IN01-FILE
- AT END
- DISPLAY "READ END"
- NOT AT END
- IF (IN01-SUJI IS NUMERIC)
- THEN
- MOVE IN01-SUJI TO WK-SUM-SUJI
- END-IF
- END-READ.
- *> 2.主処理(キーブレイク処理、データ集計処理)
- PERFORM UNTIL IN-FILE-STATUS NOT = "00"
- READ IN01-FILE
- AT END
- DISPLAY "READ END"
- NOT AT END
- IF (IN01-SUJI IS NUMERIC)
- THEN
- ADD IN01-SUJI TO WK-SUM-SUJI
- END-IF
- END-READ
- END-PERFORM.
- DISPLAY "入力された数値の合計は「" WK-SUM-SUJI "」です"
- *> 3.終了処理(ファイルクローズ)
- CLOSE IN01-FILE.
- STOP RUN.
- END PROGRAM NUMERIC_SAMPLE02.
入力ファイル(in01.txt):
実行結果:
いかがでしたでしょうか?COBOL(コボル)言語はこのように人の理解しやすい言葉を利用したコーディングができる事が特徴です。今回ご紹介したNUMERIC以外にも正負条件や英文字の判断に利用できるものが用意されていますので、こちらも活用いただければと思います。また、他のプログラミング言語を学習した方は、見慣れない言葉に少し戸惑う事もあるかもわかりませんが、これらの使い方を是非覚えていただき、実際の開発等に活用いただければと思います。
この記事を読んだ人は、こちらの記事も読んでいます
あなたのCOBOL技術を活かしませんか?
COBOL入門のカテゴリー
1. 優良社員が多数在籍しています
2. 即日派遣、又は請負います
3. 安心価格で請負います
4. 同時、協力会社募集中です
1. 正社員
2. 契約社員
3. 個人事業主
などの 求人情報 が閲覧できます。
目指せ!COBOLダントツ一番企業。
創業当初の話や理念が閲覧できます。
応募条件
※2020年5月31日を以って、締切りました。
18歳~28歳の方。
正社員採用において、北川社長の著書『祈り方が9割』を読んで感想文を事前に提出すると、無条件で最終面接まで進むことができます。
COBOLとは、どのようなプログラミング言語なのか、初心者にもわかりやすく、文法の例をあげて解説してます。
COBOL入門の人気記事
- COBOL言語とは?プログラムの書き方やルールを解説!|基礎ガイド
- 【COBOL言語】条件分岐処理の代名詞「IF文」について知ろう|用語辞典
- COBOL言語の「MOVE文」とは?転記のルールをご紹介します|用語辞典
- COBOL言語の「STRING文」とは?文字連結の基礎知識と注意点|用語辞典
- 多枝分岐ってなに?COBOL言語の「EVALUATE文」を知ろう!|用語辞典
- COBOL言語の「PICTURE句」とは?基本事項を解説します!|用語辞典
- COBOL言語で計算処理をするなら「COMPUTE文」|用語辞典
- COBOL言語の「REDEFINES句」とは?使い方を確認しよう!|用語辞典
- 覚えておけば楽ができる?COBOL言語の「COPY文」の使い方|用語辞典
- COBOL言語の文字列操作のパターンを理解しよう!|基礎ガイド
- COBOL言語の初期化処理に重宝する「INITIALIZE文」とは?|用語辞典
- COBOL言語の「LOW-VALUE」の使い方について理解しよう!|基礎ガイド
- COBOL言語の「OCCURS句」について知ろう!学ぶべき基本とは|用語辞典
- COBOL言語初心者も安心! 難解「CALL文」をスッキリ解決|用語辞典
- COBOL言語の「PERFORM文」とは。実行制御について解説!|用語辞典
- COBOL言語の繰り返し処理のパターンを理解しよう!|基礎ガイド
- COBOL言語の「定数」の種類と使い方について理解しよう!|用語辞典
- COBOLのDBアクセスパターンを学ぼう!「FETCH」|応用ガイド
- COBOL言語の「DISPLAY文」は、ディスプレイ出力の為にある|用語辞典
- COBOL言語の「VARYING句」は便利?使用方法を学びましょう|用語辞典