COBOL言語の初期化処理に重宝する「INITIALIZE文」とは? | 用語辞典
COBOL(コボル)言語の予約語INITIALIZEを使った命令文の書き方とは
COBOL(コボル)言語のINITIALIZE文とは?
COBOL(コボル)におけるINITIALIZE文は、データ項目を初期化するときに使用する命令文です。初期化対象のデータ項目を指定すると、基本項目を初期化することができます。
基本書式は、数値型のデータ項目は0で初期化し、文字列などの英数字型のデータ項目はスペースで初期化します。
基本的には出力するデータレコードを編集する前に、レコードの内容をまとめて初期化するときに使うのが一般的です。
本記事では、INITIALIZE文の基本的な使い方やルール、注意点などをご紹介します。
書き方1:(データ項目の内容を初期化する)
INITIALIZE [初期化項目].
INITIALIZE使い方はとてもシンプルです。INITIALIZEの後に初期化する項目を指定するだけで、項目を初期化することができます。
以下にデータ項目を初期化する基本的な方法を紹介します。
使用例1:
実行結果1:
サンプルでは英数字型のデータ項目TEST-STRを定義し、英数字の項目をMOVE文を使用して文字列"ABC"を転記しています。
次にINITIALIZE文でデータ項目TEST-STRを指定し、初期化しています。
DISPLAYで実行結果を確認すると、データが空白で初期化されているのがわかります。
書き方2:(データ項目の内容を複数初期化する)
INITIALIZE [初期化項目1] [初期化項目2] [初期化項目n...].
INITIALIZE文は、データ項目を複数指定して一括でデータを初期化することが可能です。
以下に複数のデータ項目を指定して、初期化する方法を紹介します。
使用例2:
実行結果2:
サンプルでは英数字型のデータ項目TEST-STRと数値型のデータ項目TEST-NUM文を定義して、MOVE文で文字列"ABC"と数値の1を転記しています。
次にINITIALIZE文でデータ項目TEST-STRとTEST-NUMを連続して指定しています。
DISPLAYで実行結果を確認すると、英数字型のデータは空白、数値型は0で初期化されていることがわかります。
REPLACINGを使用した初期化方法
REPLACING句を使用すると、初期化用の値を種類に応じた定数やデータ項目を指定することができます。
書き方:(REPLACINGを指定した初期化)
INITIALIZE [初期化項目1] [初期化項目2...] REPLACING 種類 DATA BY 値.
REPLACINGで指定する種類一覧
種類 |
種類 |
ALPHABETIC |
英字項目(Aタイプ) |
ALPHANUMERIC |
英数字項目(Xタイプ) |
NUMERIC |
数値(9タイプ) |
ALPHANUMERIC-EDITED |
英数字編集項目(XXX/XX/XXなど) |
NUMERIC-EDITED |
数値編集項目(ZZZ.ZZ9など) |
NATIONAL |
日本語項目(Nタイプ) |
NATIONAL-EDITED |
日本語編集項目(NN9-129-12など |
以下にREPLACINGを使用した、INITIALIZEの初期化方法を記述します。
使用例
実行結果
サンプルでは数値型のデータ項目TEST-NUM1、TEST-NUM2を定義し、MOVE文でそれぞれ値を転記しています。
次にINITIALIZE文で数値型変数に対して、REPLACINGでNUMERIC(9タイプ)を指定し、初期化用の値に5を指定します。
DISPLAYで実行結果を確認すると、5で初期化されていることがわかります。
INITIALIZE文のCOBOL(コボル)言語における基本事項やルールについて
- 初期化項目の値は数値型定数、文字定数、データ項目などを記述します。
- REPLACING指定に記述する種類は、初期化項目の型と同じでなければいけません。
- 同じ種類をREPLACING指定で繰り返し記述してはいけません。
- 初期化項目にOCCURS句のDEPENDING指定を含んではいけません。
- 初期化項目にRENAMES句を含んではいけません。
COBOL(コボル)言語のINITIALIZE文を扱う上での注意点
INITIALIZE文でREPLACINGを使用する場合は、基本事項やルールで記述しているように、初期化するデータ項目と、REPLACINGで指定する種類は、同じ型でなければいけません。
例えば、英数字型の項目を定義し、REPLACINGで数値型のNUMERIC(9タイプ)を指定してみます。
実行結果:
サンプルでは英数字型の項目を定義し、値を設定後にINITIALIZE文でREPLACINGのNUMERIC(9タイプ)を指定しています。
しかし、初期化する項目の型が英数字で、初期化で指定する値の型が数値型のため、初期化が失敗して値はそのままとなっています。
MOVE文同様に型が異なると、意図した処理を実行しませんので注意が必要です。
INITIALIZE文を使ったCOBOL(コボル)プログラムの活用法
データ項目を初期化するのに便利なINITIALIZE文ですが、データ項目をまとめて初期化したい場合があります。
そんなときは、集団項目を指定すれば集団項目配下のデータ項目を、一括して初期化することができます。
以下にINITIALIZE文で集団項目を指定して、一括で初期化するプログラムを紹介します。
- *> INITIALIZE_SAMPLE04
- IDENTIFICATION DIVISION.
- PROGRAM-ID. INITIALIZE_SAMPLE05.
- *>文字列と数字を扱うデータ項目を定義する
- DATA DIVISION.
- WORKING-STORAGE SECTION.
- 01 TEST-WORK-AREA.
- 05 TEST-STR1 PIC x(3).
- 05 TEST-STR2 PIC x(3).
- 05 TEST-NUM1 PIC 9(2).
- 05 TEST-NUM2 PIC 9(2).
- PROCEDURE DIVISION.
- MAIN SECTION.
- *>項目に数値を設定
- MOVE "ABC" TO TEST-STR1.
- MOVE "CDF" TO TEST-STR2.
- MOVE 1 TO TEST-NUM1.
- MOVE 2 TO TEST-NUM2.
- INITIALIZE TEST-WORK-AREA
- *>初期化後の結果を出力
- DISPLAY "[TEST-STR1 : "TEST-STR1"]" UPON CONSOLE.
- DISPLAY "[TEST-STR2 : "TEST-STR2"]" UPON CONSOLE.
- DISPLAY "[TEST-NUM1 : "TEST-NUM1"]" UPON CONSOLE.
- DISPLAY "[TEST-NUM2 : "TEST-NUM2"]" UPON CONSOLE.
- STOP RUN.
実行結果:
サンプルでは集合項目TEST-WORK-AREAを定義し、その配下に英数字型と数値型のデータ項目を定義しています。
次に英数字型と数値型のデータ項目にMOVE文で値を転記したあとに、INITIALIZE文で集合項目TEST-WORK-AREAを指定しています。
実行結果を確認すると、集合項目配下のデータ項目が全て初期化されていることがわかります。
この記事を読んだ人は、こちらの記事も読んでいます
あなたの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句」は便利?使用方法を学びましょう|用語辞典