COBOL言語の正負条件、字類条件について理解しよう!|基礎ガイド

COBOL(コボル)言語の判断処理で使用する正負条件、字類条件とは

基礎-正負条件、字類条件-イメージ

COBOL(コボル)言語の正負条件とは?

COBOL(コボル)言語の正負条件とは、その名の通りデータ項目が正なのか(0より大きい)、負なのか(0より小さい)、0なのかを判断する事です。他のプログラミング言語と同様に「>(大なり)、<(小なり)、=(イコール)」といった記号と「0」との比較で表現する事もできますが、人が理解しやすい言葉でも表現する事ができるため、今回はこの書き方について覚えておきましょう。

書き方:

データ項目 IS POSITIVE :データ項目が「ゼロより大きい」

データ項目 IS NEGATIVE :データ項目が「ゼロより小さい」

データ項目 IS ZERO   :データ項目が「ゼロとイコール」

使用例:

基礎-正負条件、字類条件-使用例

使用例は、正(1)、ゼロ(0)、負(-1)という数字のデータ項目を、正負条件を使って判断処理を行い、結果「真」であれば画面にその数字を表示するというプログラムになっています。この使用例のように、条件式を言葉で表現する事で、無駄のない、見やすいプログラムを作成する事ができます。

実行結果:

基礎-正負条件、字類条件-実行結果

COBOL(コボル)言語の字類条件とは?

プログラムの判断処理には、正負条件以外にもそのデータ項目が数字であるかどうか、英文字であるかどうかを判断する字類条件というものがあります。例えばあるデータ項目を使った演算処理を行う場合、その項目に英文字が入ってしまっていると正しい演算が行えないため、数字でない場合、エラー処理を行ったり、そのデータを読み飛ばす事が必要になりますが、そのような場面で便利に利用できます。では、この字類条件についてもしっかり覚えていきましょう。

書き方:

データ項目 IS NUMERIC   :データ項目が「数字」

データ項目 IS ALPHABETIC :データ項目が「英文字」

使用例:

基礎-正負条件、字類条件-使用例

使用例は、画面から入力される2桁の数字、英文字のデータ項目を、字類条件を使って判断処理を行い、結果「真」であれば画面に文字を表示するというプログラムになっています。数字、英文字のチェックは実際にプログラムで実現しようとした場合、このように1行で記述する事は難しいので、この表現がいかに簡潔にプログラムを記述できるかが理解いただける事と思います。

実行結果:

基礎-正負条件、字類条件-実行結果

正負条件、字類条件のCOBOL(コボル)言語における基本事項や注意事項

  1. 正負条件「データ項目 IS POSITIVE(NEGATIVE、ZERO)」の間の空白や改行は、自由に設定できます。
  2. 字類条件「データ項目 IS NUMERIC(ALPHABETIC)」の間の空白や改行は、自由に設定できます。
  3. 正負条件、字類条件は「ANDやOR等」の論理演算子を組み合わせる事で複数条件指定できます。
  4. 正負条件は数字以外の項目でも使用できますが、予期せぬ結果になりますので、使用しないように注意しましょう。

字類条件を使ったCOBOL(コボル)プログラムの活用法

プログラムの中で文字列を比較する際、大文字、小文字を区別して比較したい場合はよくあります。

このような場合、COBOL言語では、そのデータ項目が大文字で構成されているのか小文字で構成されているのか判断する字類条件が用意されています。ここでは先にご紹介した字類条件のサンプルプログラムを変更し、大文字、小文字入力の判断処理後、入力した文字を画面表示する簡単なプログラムをご紹介します。

サンプルプログラム:

  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. JIRUI_SAMPLE02.
  3. ENVIRONMENT DIVISION.
  4. DATA DIVISION.
  5. WORKING-STORAGE SECTION.
  6. 01 WK-EIJI PIC XX.
  7. PROCEDURE DIVISION.
  8.  
  9. DISPLAY "2桁の英小文字を入力してください。>> " WITH NO ADVANCING.
  10. ACCEPT WK-EIJI FROM CONSOLE.
  11.  
  12. *> 画面入力したデータ項目WK-EIJIとの比較(1回目)
  13. IF (WK-EIJI IS ALPHABETIC-LOWER)
  14. DISPLAY WK-EIJI
  15. END-IF.
  16.  
  17. IF (WK-EIJI IS ALPHABETIC-UPPER)
  18. DISPLAY "英小文字を入力してください"
  19. END-IF.
  20.  
  21. DISPLAY "2桁の英大文字を入力してください。>> " WITH NO ADVANCING.
  22. ACCEPT WK-EIJI FROM CONSOLE.
  23.  
  24. *> 画面入力したデータ項目WK-EIJIとの比較(2回目)
  25. IF (WK-EIJI IS ALPHABETIC-LOWER)
  26. DISPLAY "英大文字を入力してください"
  27. END-IF.
  28.  
  29. IF (WK-EIJI IS ALPHABETIC-UPPER)
  30. DISPLAY WK-EIJI
  31. END-IF.
  32.  
  33. STOP RUN.
  34. END PROGRAM JIRUI_SAMPLE02.

実行結果:

基礎-正負条件、字類条件-実行結果

いかがでしたでしょうか?COBOL(コボル)言語はこのように人の理解しやすい言葉を利用したコーディングができる事が特徴です。他のプログラミング言語を学習したCOBOL(コボル)言語入門者からすると、見慣れない言葉に少し戸惑う事もあるかもわかりませんが、これらの使い方に慣れてくるとプログラムを読み書きする速度が上がってきますので、COBOL(コボル)言語用語辞典なども活用しながらコーディングの幅を広げていっていただければと思います。

この記事を読んだ人は、こちらの記事も読んでいます

【未経験者歓迎】COBOLプログラマー・システムエンジニアの募集

株式会社COBOLの求人・転職・募集情報を見る

COBOL入門のカテゴリー

取引企業様 募集中
COBOL技術者 募集
COBOL魂
読者採用
COBOL入門