COBOLでBETWEEN演算子を使う5つの簡単な方法

COBOLのBETWEEN演算子を使ったプログラムの例COBOL
この記事は約10分で読めます。

※本記事のコンテンツは、利用目的を問わずご活用いただけます。実務経験10000時間以上のエンジニアが監修しており、基礎知識があれば初心者にも理解していただけるように、常に解説内容のわかりやすさや記事の品質に注力しております。不具合・分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。(理解できない部分などの個別相談も無償で承っております)
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、COBOLプログラミングにおけるBETWEEN演算子の使い方が分かるようになります。

COBOLは、長年にわたりビジネス分野で広く使われているプログラミング言語です。

本記事では、BETWEEN演算子の基本から応用までを、初心者でも理解できるように解説し、具体的なサンプルコードを用いてその使い方を紹介します。

COBOLの世界に新しく足を踏み入れる方々にとって、この記事が役立つことを願っています。

●COBOLとは

COBOL(Common Business Oriented Language)は、ビジネス向けのアプリケーション開発に特化したプログラミング言語です。

1959年に開発されて以来、金融機関や政府機関などで広く使用されています。

COBOLの特徴は、その読みやすさと、ビジネスロジックを表現するのに適した構造にあります。

COBOLは、大規模なデータ処理やバッチ処理に強く、長期にわたる運用を考慮した設計がされています。

○COBOLの基本的な特徴

COBOL言語の最大の特徴は、その読みやすく理解しやすい構文です。

英語に近い文法を持ち、自然言語に似た形式でプログラムを記述することができます。

たとえば、COBOLでは「IF」文を使用して条件分岐を表現し、「PERFORM」文で繰り返し処理を実行することができます。

また、COBOLはデータの構造を詳細に定義できるため、複雑なビジネスロジックを扱う際にもその力を発揮します。

●BETWEEN演算子とは

BETWEEN演算子は、COBOLにおいてある値が特定の範囲内にあるかどうかを判断するために使用されます。

この演算子は、数値や日付などの範囲を指定する際に非常に便利で、ビジネスロジックの実装において頻繁に利用されます。

たとえば、ある従業員の給与が特定の範囲内にあるかどうかをチェックする場合などに使用されます。

○BETWEEN演算子の基本的な使い方

BETWEEN演算子の基本的な構文は、’値 BETWEEN 下限 AND 上限’という形式です。

ここで、’値’は範囲内にあるかどうかを判断したい変数や式、’下限’と’上限’はその範囲を表します。

この演算子を使用することで、特定の範囲内に値が含まれているかどうかを簡単にチェックすることができます。

●BETWEEN演算子の基本的な使い方

BETWEEN演算子は、特定の値が指定した範囲内にあるかどうかを判定するために使用されます。

この演算子の基本的な構文は「変数 BETWEEN 下限値 AND 上限値」という形式で、これにより変数の値が下限値と上限値の間に含まれるかどうかをチェックできます。

COBOLにおいて、BETWEEN演算子は条件分岐やデータ検証の際に頻繁に用いられます。

○サンプルコード1:数値範囲のチェック

数値範囲のチェックを行う基本的な例として、従業員の年齢が特定の範囲にあるかどうかを確認する場合を考えます。

下記のサンプルコードでは、従業員の年齢が20歳以上60歳以下かどうかをチェックしています。

IF AGE BETWEEN 20 AND 60 THEN
    DISPLAY '年齢は指定された範囲内です。'
ELSE
    DISPLAY '年齢は指定された範囲外です。'
END-IF.

このコードでは、変数 AGE が20以上60以下の場合に「年齢は指定された範囲内です。」と表示されます。

そうでない場合には、「年齢は指定された範囲外です。」と表示されます。

このように、BETWEEN演算子を用いることで、数値の範囲チェックを簡単かつ効率的に行うことができます。

○サンプルコード2:日付範囲の確認

BETWEEN演算子は数値だけでなく、日付や他のデータ型にも使用できます。

例えば、特定のイベントが特定の期間内に行われているかどうかを確認する場合を考えてみましょう。

下記のサンプルコードでは、イベントの日付が2023年1月1日から2023年12月31日の間にあるかをチェックしています。

IF EVENT_DATE BETWEEN '20230101' AND '20231231' THEN
    DISPLAY 'イベントは指定された期間内に行われます。'
ELSE
    DISPLAY 'イベントは指定された期間外です。'
END-IF.

このコードは、EVENT_DATE が2023年1月1日から2023年12月31日の間であれば、「イベントは指定された期間内に行われます。」と表示し、そうでなければ、「イベントは指定された期間外です。」と表示します。

このように、BETWEEN演算子を用いることで、日付の範囲を簡単にチェックすることができ、COBOLにおけるビジネスロジックの実装を効率化できます。

●BETWEEN演算子の応用例

BETWEEN演算子は、単純な数値の範囲チェックだけでなく、さまざまな条件での応用が可能です。

特にビジネスロジックにおいて、複数の条件を組み合わせる際に役立ちます。

ここでは、BETWEEN演算子を活用した具体的な応用例として、条件分岐やループ、データベースクエリの条件指定におけるサンプルコードを紹介します。

○サンプルコード3:条件分岐での使用

BETWEEN演算子を条件分岐に使用する例として、特定の商品の価格が割引対象かどうかを判断するシナリオを考えます。

下記のサンプルコードでは、商品の価格が1000円から5000円の範囲であれば割引を適用します。

IF PRICE BETWEEN 1000 AND 5000 THEN
    DISPLAY '割引対象です。'
ELSE
    DISPLAY '割引対象外です。'
END-IF.

このコードは、PRICE が1000円以上5000円以下の場合に「割引対象です。」と表示し、そうでない場合は「割引対象外です。」と表示します。

BETWEEN演算子を使うことで、価格範囲に基づく割引の適用を簡潔に表現できます。

○サンプルコード4:ループ内での利用

次に、ループ処理内でBETWEEN演算子を使用する例を見てみましょう。たとえば、ある期間内の売上を計算する場合に役立ちます。

下記のコードでは、特定の期間内の各日の売上を合計します。

PERFORM VARYING DAY FROM 1 BY 1 UNTIL DAY > 31
    IF DAY BETWEEN 10 AND 20 THEN
        ADD DAILY_SALES(DAY) TO TOTAL_SALES
    END-IF
END-PERFORM.

このコードは、DAY が10日から20日の間にある日の売上(DAILY_SALES(DAY))を TOTAL_SALES に加算します。

BETWEEN演算子を使うことで、特定の期間に限定した集計が容易になります。

○サンプルコード5:データベースクエリの条件指定

最後に、データベースのクエリにおけるBETWEEN演算子の使用例を紹介します。

例えば、特定の期間内のレコードを選択する場合に有効です。

下記のコードでは、特定の日付範囲内の注文を選択します。

EXEC SQL
    SELECT * FROM ORDERS
    WHERE ORDER_DATE BETWEEN '20230101' AND '20231231'
END-EXEC.

このコードは、ORDER_DATE が2023年1月1日から2023年12月31日の間にある注文をデータベースから選択します。

BETWEEN演算子を用いることで、日付範囲に基づいたデータベースのクエリを簡潔に記述することができます。

●BETWEEN演算子の注意点と対処法

BETWEEN演算子を使用する際にはいくつかの注意点があり、これらを理解し適切に対処することが重要です。

特に、データ型の整合性の確保や範囲指定の正確さがキーとなります。

ここでは、これらの注意点を詳しく解説し、それらに対処する方法を具体的なサンプルコードを交えて紹介します。

○データ型の整合性

BETWEEN演算子を使用する際、最も重要なのは操作対象のデータ型の整合性を確保することです。

BETWEEN演算子は数値、日付、文字列など様々なデータ型に適用可能ですが、比較対象となる値と範囲指定の下限値及び上限値は同じデータ型である必要があります。

例えば、日付型のデータを扱う場合は、範囲指定も日付型で行う必要があります。

IF SOME_DATE BETWEEN '20230101' AND '20231231' THEN
    DISPLAY '指定された日付範囲内です。'
ELSE
    DISPLAY '日付範囲外です。'
END-IF.

この例では、SOME_DATE が日付型の変数であり、範囲指定も ‘YYYYMMDD’ 形式の日付文字列で行っています。

このようにデータ型を統一することで、エラーを回避し正確な結果を得ることができます。

○範囲指定の正確さ

また、BETWEEN演算子を使用する際には範囲指定の正確さも非常に重要です。

特に、範囲の開始値と終了値を誤って設定すると、予期しない結果につながる可能性があります。

例えば、数値の範囲を指定する際には、下限値が上限値を超えないように注意する必要があります。

IF SALARY BETWEEN 30000 AND 50000 THEN
    DISPLAY '給与は30,000から50,000の範囲内です。'
ELSE
    DISPLAY '給与は範囲外です。'
END-IF.

このコードでは、SALARY が30,000以上50,000以下の範囲にあるかどうかをチェックしています。

範囲の開始値と終了値を正しく設定することで、意図した通りの動作を保証することができます。

●COBOLプログラミングのカスタマイズ方法

COBOLプログラミングでは、BETWEEN演算子を他の演算子と組み合わせて、より複雑な条件を表現することができます。

これにより、プログラムの柔軟性と効率性が向上し、ビジネスロジックの実装が容易になります。

ここでは、BETWEEN演算子のカスタマイズ方法として、他の演算子との連携に焦点を当て、その方法を詳しく解説します。

○BETWEEN演算子の組み合わせ

BETWEEN演算子は、ANDやORといった論理演算子と組み合わせることで、より柔軟な条件判定を実現できます。

たとえば、ある範囲内の値に対して追加の条件を適用する場合、BETWEEN演算子とAND演算子を組み合わせることができます。

IF AGE BETWEEN 20 AND 30 AND STATUS = 'EMPLOYEE' THEN
    DISPLAY '対象の従業員です。'
ELSE
    DISPLAY '対象外です。'
END-IF.

このコードでは、AGE が20歳から30歳の範囲にあり、かつ STATUS が ‘EMPLOYEE’ である場合に、「対象の従業員です。」と表示されます。

このように、BETWEEN演算子を他の条件と組み合わせることで、より詳細な条件分岐を実現できます。

○他の演算子との連携

また、BETWEEN演算子は、比較演算子(例:>, <, =)や算術演算子(例:+, -, *, /)とも組み合わせることが可能です。

これにより、動的な範囲を指定したり、条件をさらに具体化したりすることができます。

IF TOTAL_SALES BETWEEN AVG_SALES - 1000 AND AVG_SALES + 1000 THEN
    DISPLAY '平均売上の近辺です。'
ELSE
    DISPLAY '平均から大きく乖離しています。'
END-IF.

この例では、TOTAL_SALES が平均売上 (AVG_SALES) からプラスマイナス1000の範囲にあるかを判定しています。

このようにBETWEEN演算子を使うことで、柔軟かつダイナミックな範囲指定が可能になります。

まとめ

この記事では、COBOLにおけるBETWEEN演算子の基本的な使い方、応用例、注意点、さらに他の演算子との連携方法について詳しく解説しました。

BETWEEN演算子は、COBOLプログラミングにおいて範囲指定を行う際に非常に便利で、様々なビジネスロジックに適用可能です。

正確なデータ型の使用と範囲の明確な定義を心掛けることで、効率的かつ正確なプログラミングが可能になります。

これらの知識を活用し、COBOLのプログラミングスキルをさらに向上させることができれば幸いです。