COBOL言語の「VALUE句」とは?初期値設定の方法を知ろう | 用語辞典
COBOL(コボル)言語の予約語VALUE句を使った命令文の書き方とは
COBOL(コボル)言語のVALUE句とは?
COBOLでは、データ項目の値を初期化しておきたい場合や、値が固定の場合はVALUE句を使用して初期値や定数を設定しておくと便利です。
本記事では、COBOLにおけるVALUE句について基本的な使い方やルール、注意点などをご紹介します。
書き方:
レベル番号 [データ項目名] PIC [PICTURE定義] VALUE [設定値].
設定値は、データ項目の初期値になります。予め値が決まっている場合は定数として使用します。VALUE句の設定値はPICTURE句で指定した形式やサイズの範囲内で指定する必要があります。
データ項目の形式やサイズなどを設定するPICTURE句については「COBOL言語の「PICTURE句」とは?基本事項を解説します! |用語辞典」で詳しく解説しています。
以下にVALUE句を使用した簡単なサンプルを紹介します。
実行結果:
サンプルでは、集団項目の配下の項目WORK-START-1に指定したサイズ分の文字列を、VALUE句を使用して初期値として設定しています。
続けて集団項目のWORK-DATAにVALUE句で初期値を設定しておくと、配下の項目WORK-DATA-STRには英数字形式の値"ABCDE"、WORK-DATA-NUMには数値形式の値123が設定されます。
VALUE句のCOBOL(コボル)言語における基本事項やルールについて
- データ項目、PIC、PICTURE定義、VALUEの各要素間の改行有無は自由に設定できます。
- VALUE句で設定する初期値や定数は、数値形式なら数値定数を指定し、英数字形式なら文字定数で指定する必要があります。
- VALUE句で英数字編集形式、数字編集形式を使用する場合は全て文字定数で指定する必要があります。
- 定数のサイズは、集団項目の配下のデータ項目全体の長さ以下に設定する必要があります。
- VALUE句の数字定数の値は、PICTURE句で指定されている値の範囲内で収める必要があります。
COBOL(コボル)言語のVALUE句を扱う上での注意点
- ファイル節では、VALUE句を使用してデータ項目の設定はできません。
- 集団項目にVALUE句を設定すると、その配下の項目でVALUE句の設定はできません。配下の項目にVALUE句を設定してもコンパイルエラーにはなりませんが、配下のVALUEで指定した値は反映されません。
- REDEFINES句による再定義の記述項には、VALUE句の指定はできません。しかし、VALUE句で指定した項目をREDEFINES句で初期化することは可能です。
VALUE句を使ったCOBOL(コボル)プログラムの活用法
開発するプロジェクトによっては初期化の定義が曖昧な場合もあり、VALUE句を使用しないで手続き部で初期化を行うこともあります。
基本的にデータ項目の初期化処理は必須ではありませんが、VALUE句で行ったほうが初期化していることが明確となります。
可読性やメンテナンスの面でも、初期化処理はVALUE句を使用して行ったほうが安全と言えるでしょう。
以下にVALUE句を使用した、さまざまな初期化方法を紹介します。
- IDENTIFICATION DIVISION.
- PROGRAM-ID. VALUE_SAMPLE02.
- ENVIRONMENT DIVISION.
- CONFIGURATION SECTION.
- DATA DIVISION.
- WORKING-STORAGE SECTION.
- *>配下のデータ項目をZEROで初期化する
- 01 WORK-DATE.
- 03 WORK-YEAR PIC 9(4) VALUE ZERO.
- 03 WORK-MONTH PIC 9(2) VALUE ZERO.
- 03 WORK-DAY PIC 9(2) VALUE ZERO.
- *>集団項目で値を初期化する
- 01 WORK-DATA VALUE "ABCDE12345/".
- 03 WORK-DATA-1 PIC X(5).
- 03 WORK-DATA-2 PIC 9(5).
- 03 WORK-DATA-3 PIC X(1).
- *>VALUE句で初期化した値をREDEFINES句で書き換える
- 01 WORK-STR.
- 03 WORK-DATA-STR PIC X(10) VALUE "ABCDEFGHIJ".
- 03 WORK-DATA-STR-R REDEFINES WORK-DATA-STR.
- 05 WORK-STR-1 PIC XXXXX.
- 05 WORK-STR-2 PIC XXXXX.
- PROCEDURE DIVISION.
- MAIN SECTION.
- *>結果を出力する
- DISPLAY "WORK-YEAR = "WORK-YEAR.
- DISPLAY "WORK-MONTH = "WORK-MONTH.
- DISPLAY "WORK-DAY = "WORK-DAY.
- DISPLAY "WORK-DATA-1 = "WORK-DATA-1.
- DISPLAY "WORK-DATA-2 = "WORK-DATA-2.
- DISPLAY "WORK-DATA-3 = "WORK-DATA-3.
- DISPLAY "WORK-STR-1 = "WORK-STR-1.
- DISPLAY "WORK-STR-2 = "WORK-STR-2.
- STOP RUN.
実行結果:
サンプルでは、集団項目WORK-DATEの配下のデータ項目に数値の0を表すZEROを指定して初期化を行ったり、集団項目WORK-DATAでは指定した文字列を配下のデータ項目で英数字形式や数値形式を指定して初期化しています。
また、集団項目WORK-STR配下の項目WORK-DATA-STR-Rでは、初期化した値をREDEFINES句を使用して再定義しています。
REDEFINES句については「COBOL言語の「REDEFINES句」とは?使い方を確認しよう!|用語辞典」で詳しく解説しています。
この記事を読んだ人は、こちらの記事も読んでいます
あなたの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句」は便利?使用方法を学びましょう|用語辞典