COBOLでAND・ORを使った複合条件を初心者でもわかるように完全ガイド
生徒
「COBOLで複数の条件を同時にチェックするにはどう書けばいいですか?」
先生
「COBOLでは、ANDやORというキーワードを使って、条件を組み合わせることができますよ。」
生徒
「ANDとORは具体的にどう違うんですか?」
先生
「それでは、AND・ORを使った複合条件について、順番にわかりやすく説明していきますね!」
1. ANDとORって何?簡単なイメージ紹介
COBOLに限らずプログラミングでは、複合条件という「条件を組み合わせて判断する仕組み」がよく使われます。
・ANDは「両方とも成立するならOK」、
・ORは「どちらか一方でも成立すればOK」という意味です。
身近な例で言うと、
「お菓子を買う条件」が「予算がある AND 店が開いている」なら買える、
「予算がある OR ポイントがたまっている」ならどちらかがあればOK、というイメージです。
2. COBOLでANDを使った複合条件
ここでは「年齢が20以上 AND 性別が男性」という条件を使った例を見てみましょう。両方当てはまるときに処理をします。
IF AGE >= 20 AND GENDER = "M" THEN
DISPLAY "あなたは成人男性です。"
END-IF
このコードは「AGE(年齢)が20以上」かつ「GENDER(性別)がM(男性)」のときにだけメッセージを表示します。
3. COBOLでORを使った複合条件
次に「年齢が65以上 OR 学生である」条件を試してみましょう。どちらかの条件が成立すればOKです。
IF AGE >= 65 OR STATUS = "STUDENT" THEN
DISPLAY "割引が適用されます。"
END-IF
AGEが65以上か、STATUSという変数が「STUDENT(学生)」なら、割引メッセージが表示されます。
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. 複合条件を使うときのポイント整理
- データ型を揃える:AGEは数値、GENDERはい文字など、比べる値の形式を統一すること。
- ANDとORの優先順位を意識する:ANDが先、ORが後で判断される。
- 読みやすい書き方を心がける:複雑な場合はIFを分けて書くと理解しやすい。
こうすることで、プログラミング未経験でも読みやすく、ミスを減らせます。
6. 実行結果のイメージ
たとえばAGE=22、GENDER="M"の場合:
あなたは成人男性です。
AGE=70、STATUS="NONE"、VIP="Y"の場合:
成人VIPです。
どちらの条件にも当てはまらないときは、何も表示されません。