COBOL言語の繰り返し処理のパターンを理解しよう!|基礎ガイド
COBOL(コボル)言語で頻繁に活用される繰り返し処理のパターンとは
COBOL(コボル)言語の繰り返し処理とは?
COBOL(コボル)言語を始め、様々な業務プログラムで、処理を一定回数繰り返す繰り返し処理は頻繁に登場します。例えばファイルに存在する複数レコードに対して同じ演算処理を行い、結果を出力するという場合、繰り返し処理は大変有効です。
ここでは、まずCOBOL(コボル)言語での繰り返し処理の基本的な書き方についてご紹介しますので、しっかりその書き方及び使用方法について理解していきましょう。
書き方:
PERFORM データ項目 TIMES
繰り返す処理
END-PERFORM.
使用例:
使用例は、WK-KAISUというデータ項目に繰り返す回数を指定し、その回数分WK-SUJI(初期値0)に1を加算し、結果を画面表示するというプログラムです。この使用例のように、繰り返し処理を活用すると、処理回数分同じ演算式を記述する事なく、プログラムが作成できる事が理解いただけるかと思います。
実行結果:
COBOL(コボル)言語の繰り返し処理のパターン
COBOL(コボル)言語の基本的な書き方が理解いただけたところで、次はCOBOL(コボル)言語に用意されている繰り返し処理のパターンについてご紹介します。
COBOL(コボル)言語の繰り返し処理は大きく分けて、繰り返す回数が決まっているもの、繰り返す回数が決まっていないものの2つのパターンに分けられます。回数が決まった繰り返し処理は先程ご紹介しましたので、ここでは回数が決まっていない繰り返し処理のパターンについてご紹介します。回数が決まっていない繰り返し処理は、ある条件に合致するまで処理を繰り返す事になりますが、主に3つの書き方が存在します。
書き方1:処理の最初に条件判断を行うもの(前判定)
PERFORM WITH TEST BEFORE UNTIL 条件式
繰り返す処理
END-PERFORM.
使用例1:
この繰り返し処理のパターンは、条件によっては「繰り返す処理」を一度も処理しないという特徴があります。
実行結果1:
書き方2:処理の最後に条件判断を行うもの(後判定)
PERFORM WITH TEST AFTER UNTIL 条件式
繰り返す処理
END-PERFORM.
使用例2:
この繰り返し処理のパターンは、条件によらず必ず1回は「繰り返す処理」が行われるという特徴があります。前判定の繰り返し処理と比較して、実行結果が変わる事が理解いただけるかと思います。
実行結果2:
書き方3:データ項目を規則的に変化させながら繰り返し処理を行うもの
PERFORM VARYING データ項目 FROM データ項目の初期値 BY 変化させる値
UNTIL 条件式
繰り返す処理
END-PERFORM.
使用例3:
この繰り返し処理のパターンは、繰り返し処理の条件にあたるデータ項目を規則的に変化させる事ができるため、処理の記述を単純化できる特徴があります。今までの使用例で記述していたADD文の記述が無くなっている事が理解いただけるかと思います。
実行結果3:
COBOL(コボル)言語における繰り返し処理の基本事項や注意事項
- 繰り返し処理「PERFORM データ項目 TIMES」等の間の空白や改行は、自由に設定できます。
- 前判定の繰り返し処理「PERFORM WITH TEST BEFORE UNTIL 条件式」の「WITH TEST BEFORE」部分は、省略する事ができます。
- 後判定の繰り返し処理「PERFORM WITH TEST AFTER UNTIL 条件式」の「WITH TEST AFTER」部分は、省略する事ができません。
- 「PERFORM VARYING データ項目 FROM データ項目の初期値 BY 変化させる値」の「変化させる値」には、負の数字も記述する事ができます。
繰り返し処理を使ったCOBOL(コボル)プログラムの活用法
COBOL(コボル)言語の繰り返し処理の基本的な書き方や使用例について理解いただけたでしょうか?最後に活用法として繰り返し処理の中で繰り返し処理を行う多重反復についてご紹介します。今までご紹介した書き方のパターンを組み合わせる事で処理が実現できますので、ここまでの内容を理解いただけていれば、それ程難しい内容ではないでしょう。
サンプルプログラム:
- IDENTIFICATION DIVISION.
- PROGRAM-ID. LOOP_SAMPLE05.
- ENVIRONMENT DIVISION.
- DATA DIVISION.
- WORKING-STORAGE SECTION.
- 01 WK-SUJI PIC 99 VALUE ZERO.
- 01 WK-SUJI-TTL PIC 999 VALUE ZERO.
- PROCEDURE DIVISION.
- *> 条件付繰り返し処理
- PERFORM 10 TIMES
- *> 繰り返し処理の中の繰り返し処理
- PERFORM VARYING WK-SUJI FROM 1 BY 1
- UNTIL WK-SUJI > 10
- ADD 1 TO WK-SUJI-TTL
- END-PERFORM
- DISPLAY WK-SUJI-TTL
- END-PERFORM.
- STOP RUN.
- END PROGRAM LOOP_SAMPLE05.
実行結果:
いかがでしたでしょうか?決まった処理を何度も正確に処理できるのがプログラムの特徴です。特にこのプログラムの特徴を象徴するような処理が、今回ご紹介した繰り返し処理になりますので、同じような処理を記述する場合には、今回ご紹介した繰り返し処理が使えないか一度は考えるようにしてみましょう。ただし、多重反復については階層が深くなるとプログラムが読み難くなりますので、読みやすさも加味したプログラムになるよう心がけましょう。
この記事を読んだ人は、こちらの記事も読んでいます
あなたの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句」は便利?使用方法を学びましょう|用語辞典