カテゴリ: COBOL 更新日: 2025/07/20

COBOLのif文の使い方を完全ガイド!初心者でもわかる条件分岐とネスト

IF文のネストと複雑な条件の記述例
IF文のネストと複雑な条件の記述例

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

生徒

「COBOLで条件によって分岐する方法ってありますか?」

先生

「COBOLでは、if文を使って、簡単に条件分岐することができます。」

生徒

「具体的にはどのように使うんですか?」

先生

「それでは、基本的な使い方を見ていきましょう!」

1. if文とは?

1. if文とは?
1. if文とは?

COBOLのif文は、プログラムの中で条件に応じて処理を切り替えるための命令です。たとえば、「年齢が20歳以上なら『成人』と表示する」など、条件分岐を行いたいときに使います。条件分岐とは、「もし〜ならば○○する、そうでなければ××する」といった判断をプログラムにさせることです。

以下は、年齢が20歳以上かどうかを判断する基本的なif文の例です。


IF AGE >= 20 THEN
    DISPLAY "あなたは成人です。"
END-IF

このように、COBOLのif文では、IFTHENを使って条件を書き、最後にEND-IFで終わります。中括弧{}などは使いません。

2. ネスト(入れ子)されたif文の使い方

2. ネスト(入れ子)されたif文の使い方
2. ネスト(入れ子)されたif文の使い方

ネストとは、「if文の中にさらにif文を書く」ことです。たとえば、「年齢が20歳以上で、かつ国籍が日本の場合だけ特定の処理をする」といった複数の条件を判断する場面で使います。

以下の例は、年齢が20歳以上で、さらに国籍コードが「JP」だった場合に「日本の成人です」と表示するネストされたif文です。


IF AGE >= 20 THEN
    IF NATIONALITY = "JP" THEN
        DISPLAY "日本の成人です。"
    END-IF
END-IF

このように、2つのif文を重ねて書くことで、細かい条件を段階的にチェックできます。プログラムは上から順番に読みます。まず年齢が20歳以上かをチェックし、その条件が正しければ次に国籍をチェックします。

3. ELSEを使って条件に合わなかった場合の処理を書く

3. ELSEを使って条件に合わなかった場合の処理を書く
3. ELSEを使って条件に合わなかった場合の処理を書く

IF文では、条件に合わなかった場合の処理も書くことができます。それがELSEです。「もし〜なら〜する、そうでなければ〜する」という形です。

以下の例では、年齢が20歳以上なら「成人」と表示し、そうでなければ「未成年」と表示します。


IF AGE >= 20 THEN
    DISPLAY "あなたは成人です。"
ELSE
    DISPLAY "あなたは未成年です。"
END-IF

ELSEを使うと、1つの条件に対して2通りの分岐ができます。どちらか一方の処理が必ず実行される形になるので、分かりやすくなります。

4. 複雑な条件を1つのIF文にまとめる方法

4. 複雑な条件を1つのIF文にまとめる方法
4. 複雑な条件を1つのIF文にまとめる方法

ネストするのではなく、複数の条件を一つの行で書くこともできます。そのときはAND(〜かつ)やOR(〜または)を使います。

以下の例は、「年齢が20歳以上、かつ国籍が日本」であれば「日本の成人です」と表示します。


IF AGE >= 20 AND NATIONALITY = "JP" THEN
    DISPLAY "日本の成人です。"
END-IF

逆に、「年齢が20歳以上または国籍が日本」どちらか一方でも当てはまるなら表示したい場合は、ORを使います。


IF AGE >= 20 OR NATIONALITY = "JP" THEN
    DISPLAY "条件のいずれかに当てはまります。"
END-IF

ANDORを使うときは、条件が正しく組み合わされているかを意識しましょう。カッコ()で囲むことで優先順位も制御できます。

5. 実行結果の例

5. 実行結果の例
5. 実行結果の例

以下は、年齢が18歳で、国籍が「JP」の場合の出力例です。上記の複雑な条件に合致しないため、表示されません。


年齢が25歳で、国籍が「JP」なら以下のように表示されます。


日本の成人です。

6. ネストと複雑な条件はどちらが良いの?

6. ネストと複雑な条件はどちらが良いの?
6. ネストと複雑な条件はどちらが良いの?

ネストされたif文と、複数の条件を1行で書く方法は、どちらにもメリットがあります。ネストは段階的に判断したいときに分かりやすく、1行で条件をまとめるとコードがすっきりします。ただし、条件が増えてくると、1行で書いた方が読みづらくなることもあるので注意が必要です。

初心者の方には、まずはネストを使って段階的に判断する方法をおすすめします。慣れてきたらANDORを使ってまとめるスタイルにチャレンジしてみましょう。

7. よくあるミスと注意点

7. よくあるミスと注意点
7. よくあるミスと注意点
  • IF文の最後には必ずEND-IFを忘れずに。
  • 条件式の比較には「=」を使い、「==」や「!=」などは使えません。
  • 文字列の比較は必ずダブルクォート(")で囲む必要があります。
  • ネストが深くなるとコードが読みづらくなるので、適切に整理しましょう。
カテゴリの一覧へ
新着記事
C#でタイムスタンプの精度を上げるためのテクニックを徹底解説!(初心者向け)
C#のコーディング規約(C# Coding Conventions)とは?読みやすいコードを書くための基本ルール
C#のデストラクタ(ファイナライザ)の使い方と注意点をやさしく解説!
COBOL資産のバージョン管理とは?初心者でもわかる保守と管理の基本
人気記事
No.1
Java&Spring記事人気No1
COBOLで学ぶSELECT文のORDER BY・GROUP BY活用法!初心者でもわかるデータ集計
No.2
Java&Spring記事人気No2
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.3
Java&Spring記事人気No3
COBOLのCOPY句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法
No.4
Java&Spring記事人気No4
COBOLで学ぶカーソル操作と複数行データ取得の基本
No.5
Java&Spring記事人気No5
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#の数値型をマスターしよう!int・double・decimalの違いと使い方
No.7
Java&Spring記事人気No7
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.8
Java&Spring記事人気No8
C#の日付型(DateTime)と基本的な使い方を解説|初心者向け入門ガイド