カテゴリ: COBOL 更新日: 2026/01/23

COBOLでAND・ORを使った複合条件を初心者でもわかるように完全ガイド

AND・ORを使った複合条件の作成方法
AND・ORを使った複合条件の作成方法

先生と生徒の会話形式で理解しよう

生徒

「COBOLで複数の条件を同時にチェックするにはどう書けばいいですか?」

先生

「COBOLでは、ANDやORというキーワードを使って、条件を組み合わせることができますよ。」

生徒

「ANDとORは具体的にどう違うんですか?」

先生

「それでは、AND・ORを使った複合条件について、順番にわかりやすく説明していきますね!」

1. ANDとORって何?簡単なイメージ紹介

1. ANDとORって何?簡単なイメージ紹介
1. ANDとORって何?簡単なイメージ紹介

COBOLに限らずプログラミングでは、複合条件と呼ばれる「複数の条件を組み合わせて判断する考え方」がとても重要です。ANDやORは、その複合条件を作るための基本ルールになります。

まずANDは、「すべての条件がそろったときだけOK」という意味です。一方でORは、「どれか一つでも条件を満たしていればOK」という意味になります。

たとえば日常生活で考えると、
「雨が降っている AND 傘を持っている」なら外出できる、
「雨が降っている OR 屋根がある」なら濡れずに済む、という感覚に近いです。

初心者向け:超かんたんイメージ例


IF MONEY >= 100 AND SHOP = "OPEN" THEN
    DISPLAY "買い物ができます。"
END-IF

やさしく解説:
・お金が100以上かつお店が開いているときだけ表示されます。
・どちらか一方でも欠けると、処理は実行されません。
・この「両方そろう」という感覚がANDです。

逆にORの場合は、「条件のどちらかが成立すればよい」という考え方になります。最初はAND=全部必要、OR=どれかでOKと覚えると混乱しにくくなります。

2. COBOLでANDを使った複合条件

2. COBOLでANDを使った複合条件
2. COBOLでANDを使った複合条件

ANDは「条件を同時に満たすときだけOK」という考え方です。COBOLのIF文でANDを使うと、「AもBも正しいなら実行する」という形で、チェックを1行にまとめられます。

ここでは「年齢が20以上 AND 性別が男性」という条件を使った例を見てみましょう。どちらか片方だけ当てはまっても表示されないので、「両方そろっているか」を確認したい場面でよく使われます。


IF AGE >= 20 AND GENDER = "M" THEN
    DISPLAY "あなたは成人男性です。"
END-IF

このコードは「AGE(年齢)が20以上」かつ「GENDER(性別)がM(男性)」のときにだけメッセージを表示します。つまり、20歳以上でも性別が違えば表示されませんし、男性でも年齢が19なら表示されません。

初心者向け:ANDの動きを結果でイメージ


IF AGE >= 20 AND GENDER = "M" THEN
    DISPLAY "OK(両方当てはまる)"
ELSE
    DISPLAY "NG(どちらか足りない)"
END-IF

やさしく解説:
・ANDは「チェック項目を2つ並べる」イメージです。
・どちらも正しいときだけOKになるので、条件が厳しめになります。
・迷ったら「AND=全部必要」と覚えると、読み間違いを減らせます。

3. COBOLでORを使った複合条件

3. COBOLでORを使った複合条件
3. COBOLでORを使った複合条件

ORは「どちらか一方でも条件を満たせばOK」という考え方です。ANDが“全部そろっているか”を見るのに対して、ORは“どれか当たっていればいいか”を判断します。割引の判定や、例外的に許可したい条件があるときに便利です。

次に「年齢が65以上 OR 学生である」条件を試してみましょう。どちらかの条件が成立すればOKなので、年齢が若くても学生なら割引、逆に学生でなくても65以上なら割引というルールを1行で表せます。


IF AGE >= 65 OR STATUS = "STUDENT" THEN
    DISPLAY "割引が適用されます。"
END-IF

このコードは、AGEが65以上またはSTATUSが「STUDENT(学生)」ならメッセージを表示します。どちらか片方に当てはまれば動くので、「条件がゆるめになる」のがORの特徴です。

初心者向け:ORの動きを結果でイメージ


IF AGE >= 65 OR STATUS = "STUDENT" THEN
    DISPLAY "OK(どちらか当てはまる)"
ELSE
    DISPLAY "NG(どちらも当てはまらない)"
END-IF

やさしく解説:
・ORは「候補を2つ並べて、どっちか当たればOK」というイメージです。
・片方が成立していれば実行されるので、条件の抜け道(例外)を作りたいときに向きます。
・迷ったら「OR=どれかでOK」と覚えるとスッと読めます。

4. ANDとORを組み合わせるときの注意点

4. ANDとORを組み合わせるときの注意点
4. ANDとORを組み合わせるときの注意点

複合条件が増えると「どの条件が優先されるか(結合の順番)」が大事になります。COBOLではANDとORを混ぜたとき、ANDが先に処理されます

例えば次のような場合:


IF AGE >= 20 AND STATUS = "STUDENT" OR VIP = "Y" THEN
    DISPLAY "特別なメッセージ"
END-IF

これは「(年齢20以上で学生) OR VIPである」の意味になります。

もし「年齢20以上かつ(学生またはVIP)」にしたい場合は、かっこ(括弧)は書けないのでIF文を二段に分けて書く方法を使います。


IF AGE >= 20 AND STATUS = "STUDENT" THEN
    DISPLAY "成人学生です。"
ELSE
    IF AGE >= 20 AND VIP = "Y" THEN
        DISPLAY "成人VIPです。"
    END-IF
END-IF

5. 複合条件を使うときのポイント整理

5. 複合条件を使うときのポイント整理
5. 複合条件を使うときのポイント整理
  • データ型を揃える:AGEは数値、GENDERはい文字など、比べる値の形式を統一すること。
  • ANDとORの優先順位を意識する:ANDが先、ORが後で判断される。
  • 読みやすい書き方を心がける:複雑な場合はIFを分けて書くと理解しやすい。

こうすることで、プログラミング未経験でも読みやすく、ミスを減らせます。

6. 実行結果のイメージ

6. 実行結果のイメージ
6. 実行結果のイメージ

たとえばAGE=22、GENDER="M"の場合:


    あなたは成人男性です。

AGE=70、STATUS="NONE"、VIP="Y"の場合:


    成人VIPです。

どちらの条件にも当てはまらないときは、何も表示されません。

まとめ

まとめ
まとめ

COBOLにおけるANDやORを使った複合条件は、現実のビジネスロジックを忠実に表現する上で欠かせないテクニックです。単純なIF文では実現しきれないような複雑な条件判断を可能にするため、実務でも頻繁に利用されます。たとえば「年齢が20歳以上かつ男性」「65歳以上または学生」といったように、複数の条件を組み合わせて処理を分岐させる場面では、今回学んだAND・ORの使い方がとても役立ちます。

特にCOBOLのANDとORには優先順位があり、ANDが先に評価されるという仕様は忘れてはいけません。IF文でANDとORを混在させた場合、意図しない結果を招くこともあるため、必要であればIF文を分けて記述する、という工夫がとても大切です。また、COBOLでは括弧を使って条件のまとまりを明示することができないため、IFのネスト(入れ子構造)を上手に使って論理の流れを明確に示す技術も求められます。

さらに、条件文を書く際には変数のデータ型にも気を配る必要があります。数値型(例えばAGE)と文字列型(例えばGENDERやSTATUS)は比較の対象として扱い方が異なるため、型の不一致によってエラーが発生しないよう、記述前に変数定義を確認しておくことが重要です。これは初学者がつまずきやすいポイントでもあります。

COBOLのような業務系プログラミング言語では、条件分岐を使って帳票の出し分けをしたり、データの抽出条件を制御したりと、実際の処理に深く関わってきます。そのため、ANDやORを正確に理解して正しく使えるようになることは、今後のプログラミング力全体を底上げする大きな一歩になります。

最後に、COBOLのIF文は読みやすさを意識することも大切です。複雑な条件はなるべく分解し、誰が見てもすぐに意味が理解できるような記述を心がけましょう。これは保守性や引き継ぎの観点でも非常に重要な考え方です。

サンプルプログラム:AND・ORを組み合わせた会員判定


IDENTIFICATION DIVISION.
PROGRAM-ID. MEMBER-CHECK.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 AGE          PIC 99 VALUE ZEROS.
01 STATUS       PIC X(10) VALUE SPACES.
01 VIP-FLAG     PIC X VALUE SPACE.
01 MSG          PIC X(40).

PROCEDURE DIVISION.
    DISPLAY "年齢を入力してください:" 
    ACCEPT AGE

    DISPLAY "ステータスを入力してください(例:STUDENT):" 
    ACCEPT STATUS

    DISPLAY "VIPフラグを入力してください(Y/N):" 
    ACCEPT VIP-FLAG

    IF AGE >= 65 OR STATUS = "STUDENT" THEN
        MOVE "割引対象の会員です。" TO MSG
    ELSE
        IF AGE >= 20 AND VIP-FLAG = "Y" THEN
            MOVE "成人VIP会員です。" TO MSG
        ELSE
            MOVE "一般会員です。" TO MSG
        END-IF
    END-IF

    DISPLAY MSG
    STOP RUN.

このプログラムは、複数の条件を組み合わせて「割引対象」「VIP会員」「一般会員」といった分類を行います。現場でよく使われるロジックの一例として参考になる構成です。

先生と生徒の振り返り会話

生徒

「ANDとORって、日常の考え方に近いけど、プログラムだと順番に気をつけなきゃいけないんですね。」

先生

「そうなんです。COBOLではANDが先に処理されるから、思った通りの動作にするにはIFの分け方も大事ですよ。」

生徒

「かっこが使えないって聞いたときは焦ったけど、IFを分けて書けばちゃんと整理できるんですね。」

先生

「その通り。複雑な条件は読みやすく分ける方が、他の人にもわかりやすくて安全です。」

生徒

「今回のサンプルみたいに、実務っぽい内容で練習すると理解が深まりそうです!」

先生

「実際の業務で出てくる条件を想定してコードを書くのはとても良い練習になりますよ。次はNOT条件も使ってみましょうか。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

COBOLでANDやORを使った複合条件とは何ですか?

COBOLのANDやORを使った複合条件とは、複数の条件を同時に組み合わせて判断する方法です。ANDは両方の条件が成立した場合に、ORはどちらか一方の条件が成立した場合に処理が実行されます。COBOLでは業務ロジックでこのような複合条件を使うことがよくあります。
カテゴリの一覧へ
新着記事
New1
C#
C#のLINQでAny・Allなど条件確認メソッドの使い方を完全ガイド!初心者でもわかるデータ検証
New2
C#
C#のデフォルト引数と名前付き引数の使い方を解説!初心者でも安心のやさしい入門
New3
C#
C#のオブジェクト初期化子を完全ガイド!初心者でもわかる便利な使い方
New4
COBOL
COBOLの帳票出力と編集を完全マスター!条件付き表示で分かりやすい書類を作る方法
人気記事
No.1
Java&Spring記事人気No1
C#
C#でJSONファイルを読み書きする方法(JsonSerializer・Newtonsoft.Json)
No.2
Java&Spring記事人気No2
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.3
Java&Spring記事人気No3
C#
C#でswitch式を使う方法!C# 8.0以降の新機能を解説
No.4
Java&Spring記事人気No4
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.5
Java&Spring記事人気No5
C#
C#のLINQクエリ構文の書き方と基本操作をマスターしよう
No.6
Java&Spring記事人気No6
C#
C#のLINQ(リンク)とは?基本概念とデータ操作を初心者向けに徹底解説!
No.7
Java&Spring記事人気No7
C#
C#のCancellationTokenを使ったキャンセル処理を完全ガイド!非同期処理を安全に止める方法
No.8
Java&Spring記事人気No8
C#
C#の非同期処理とUIスレッドをマスター!WPF/WinFormsでアプリが止まる問題を解決