COBOL言語の「MOVE文」とは?転記のルールをご紹介します | 用語辞典
COBOL(コボル)言語の予約語MOVEを使った命令文の書き方とは
COBOL(コボル)言語のMOVE文とは?
COBOL(コボル)におけるMOVE文は、データ項目にデータを保存したり、データを別のデータ項目に複写したりする処理のことを指します。
COBOLではこのような処理を「転記」と言います。基本的には他のプログラミング言語で行うような変数に値を代入したり、他の変数に値をコピーするといった処理と同様のことを行います。
本記事では、MOVE文の基本的な使い方やルール、注意点などをご紹介します。
書き方1:(データに文字列を転記する)
MOVE [転記元の値] TO [転記先の項目1] [転記先の項目2] [転記先の項目n...].
MOVE文によるデータの転記は、他の言語で行う「str = “abc”」のような値の代入を、「MOVE “abc” TO str」の形式で行います。
使用例1:
実行結果:
サンプルでは文字列用のデータ項目TEST-MOVE1を定義し、文字列の項目をMOVE文を使用して文字列”ABC”を転記しています。
DISPLAYで項目TEST-MOVE1の結果を確認すると、文字列”ABC”が設定されているのがわかります。
書き方2:(データに変数の値を転記する)
MOVE [転記元の項目] TO [転記先の項目1] [転記先の項目2] [転記先の項目n...].
MOVE分は前述したように、他のプログラミングで行うような、データ項目の値を他のデータ項目に代入する処理が可能です。
使用例2:
実行結果:
サンプルでは文字列のデータ項目TEST-MOVE1とTEST-MOVE2を定義し、TEST-MOVE1にMOVE文を使用して文字列”ABC”を転記しています。
本記事では、MOVE文の基本的な使い方やルール、注意点などをご紹介します。
DISPLAY変数で項目TEST-MOVE1、TEST-MOVE2の値を確認すると、それぞれ文字列”ABC”の値が設定されているのがわかります。
MOVE文のCOBOL(コボル)言語における基本事項やルールについて
- 転記元の値は数値型定数、文字定数、データ項目などを記述します。
- 転記先はデータ項目を記述します。転記先は、複数の項目を指定することができます。
- 数値型の式(9タイプ)では、右詰めで転記を行います。
- 小数点を含む数値では、少数の位置を基準として左詰めで転記を行います。
- 数値型のデータ項目には、数値定数と数値型式しか転記ができません。
COBOL(コボル)言語のMOVE文を扱う上での注意点
MOVE文はデータを転記するのに必須となる機能ですが、使い方を誤ると思わぬ不具合が発生してしまいます。
基本事項やルールで説明したように、COBOLはデータ項目を定義するときに、数値型は(9タイプ)を指定しますが、文字列の項目を数値型の項目へ転記してしまうと、意図した値を転記することができません。
例えば、以下のように数値型のデータ項目に文字列の値を転記してみます。
実行結果:
サンプルでは、文字列のデータ項目TEST-MOVE1と数値型のデータ項目TEST-MOVE_NUMを設定しています。
TEST-MOVE1にMOVE文で文字列”ABC”を設定し、数値型のTEST-MOVE_NUMにMOVE文を使用して、TEST-MOVE1の値を転記しています。
実行結果からわかるように、文字列のデータ項目を数値型のデータ項目に転記すると、意図した値を設定することができません。
CやJavaなどのプログラミング言語では、コンパイル時にコピーや代入する変数の型が異なるとコンパイルエラーとなり、事前にミスを防ぐことができます。
しかし、COBOLの場合は転記で異なる指定をしても、コンパイルエラーとなりませんので、MOVE文を使用するときは、転記先と転記元の型の整合性がとれているか、注意が必要です。
MOVE文を使ったCOBOL(コボル)プログラムの活用法
文字列や数値を転記するのに便利なMOVE文ですが、書き方1で紹介したように、複数のデータ項目に同じ値を転記したい場合もあります。
以下に1対複数の転記を行いたい場合の簡易的なプログラムを紹介します。
- *> MOVE_SAMPLE04
- IDENTIFICATION DIVISION.
- PROGRAM-ID. MOVE_SAMPLE04.
- *>文字列を扱う定数を定義する
- DATA DIVISION.
- WORKING-STORAGE SECTION.
- 01 TEST-MOVE1 PIC x(3).
- 01 TEST-MOVE2 PIC x(3).
- 01 TEST-MOVE3 PIC x(3).
- 01 TEST-MOVE4 PIC x(3).
- 01 TEST-MOVE5 PIC x(3).
- 01 TEST-MOVE_NUM1 PIC 9(2).
- 01 TEST-MOVE_NUM2 PIC 9(2).
- 01 TEST-MOVE_NUM3 PIC 9(2).
- 01 TEST-MOVE_NUM4 PIC 9(2).
- 01 TEST-MOVE_NUM5 PIC 9(2).
- PROCEDURE DIVISION.
- MAIN SECTION.
- *>項目TEST-MOVE1に文字列を設定
- MOVE "ABC" TO TEST-MOVE1.
- *>それぞれの項目にTEST-MOVE1の値を転記する
- MOVE TEST-MOVE1 TO TEST-MOVE2 TEST-MOVE3
- TEST-MOVE4 TEST-MOVE5.
- *>項目TEST-MOVE_NUM1に数値を設定
- MOVE 3 TO TEST-MOVE_NUM1.
- *>それぞれの項目にTEST_MOVE_NUM1の値を転記する
- MOVE TEST-MOVE_NUM1 TO TEST-MOVE_NUM2 TEST-MOVE_NUM3
- TEST-MOVE_NUM4 TEST-MOVE_NUM5.
- *>結果を出力
- DISPLAY "["TEST-MOVE2 TEST-MOVE3 TEST-MOVE4 TEST-MOVE5"]"
- UPON CONSOLE.
- DISPLAY "["TEST-MOVE_NUM2 TEST-MOVE_NUM3 TEST-MOVE_NUM4 TEST-MOVE_NUM5"]"
- UPON CONSOLE.
- STOP RUN.
事項結果:
紹介したサンプルでは、文字列のデータ項目TEST-MOVE1~TEST-MOVE5と、数値型のデータ項目TEST-MOVE_NUM1~TEST-MOVE_NUM2を定義しています。
文字列用の項目TEST-MOVE1と、数値型の項目TEST-MOVE_NUM1に、それぞれ値を設定します。
設定したデータ項目を転記するために、MOVE文の転記先の項目に、データ項目を連続して指定して複写しています。
実行結果からわかるように、それぞれのデータ項目に、同じ値が転記されていることがわかります。
この記事を読んだ人は、こちらの記事も読んでいます
あなたのCOBOL技術を活かしませんか?
COBOL入門のカテゴリー
1. 優良社員が多数在籍しています
2. 即日派遣、又は請負います
3. 安心価格で請負います
4. 同時、協力会社募集中です
1. 正社員
2. 契約社員
3. 個人事業主
などの 求人情報 が閲覧できます。
目指せ!COBOLダントツ一番企業。
創業当初の話や理念が閲覧できます。
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句」は便利?使用方法を学びましょう|用語辞典