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

COBOLで数値比較とALPHABETIC・NUMERIC条件をやさしく解説!初心者でも安心ガイド

数値比較とALPHABETIC・NUMERIC条件の使い方
数値比較とALPHABETIC・NUMERIC条件の使い方

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

生徒

「COBOLで数字だけじゃなくて文字か数字かも判定したいんですが、どう書けばいいですか?」

先生

「COBOLでは、数値の比較と、文字列が数字だけか文字だけかを調べるALPHABETIC・NUMERICという特別な条件が使えますよ。」

生徒

「それってどういうときに必要なんですか?」

先生

「たとえば、人が入力した値が数字か文字か調べたいときや、年齢などの数値を比べたいときに便利です。順番に丁寧に見ていきましょう!」

1. 数値比較とは?

1. 数値比較とは?
1. 数値比較とは?

まずは「数値比較(すうちひかく)」です。COBOLでは、IF文を使って値を比べるときに、=, >, <, >=, <=, NOT =などの演算子(=や <など)を使います。

たとえば、IF AGE >= 18は「AGE(年齢)が18以上なら」という意味です。数字を比べるときにはとても基本的で大切な書き方です。

2. 数値比較のCOBOLコード例

2. 数値比較のCOBOLコード例
2. 数値比較のCOBOLコード例

IF AGE < 13 THEN
    DISPLAY "子どもです。"
ELSE
    IF AGE < 20 THEN
        DISPLAY "ティーンエイジャーです。"
    ELSE
        DISPLAY "大人です。"
    END-IF
END-IF

この例は年齢に応じて「子ども」「ティーン」「大人」を表示します。連続したIF文でわかりやすく分岐しています。

3. ALPHABETICとNUMERIC条件って何?

3. ALPHABETICとNUMERIC条件って何?
3. ALPHABETICとNUMERIC条件って何?

ここからは文字列(もじれつ)が数字だけか文字だけかを調べるときに使う条件です。

  • ALPHABETIC:入力が英字だけ(A~Zまたはa~z)なら「正しい(True)」となります。
  • NUMERIC:入力が数字だけ(0~9)ならTrueとなります。

たとえば、ユーザーがキーボードで入力した文字列が数字か文字かを判別できるので、入力チェックなどに使われます。

4. NUMERICで数字入力チェックの例

4. NUMERICで数字入力チェックの例
4. NUMERICで数字入力チェックの例

IF FIELD-NAME NUMERIC THEN
    DISPLAY "数字として処理します。"
ELSE
    DISPLAY "数字以外が入力されています。"
END-IF

このコードでは、FIELD-NAMEという変数に数字だけが入っているかを調べ、メッセージを切り替えています。

5. ALPHABETICで文字入力チェックの例

5. ALPHABETICで文字入力チェックの例
5. ALPHABETICで文字入力チェックの例

IF FIELD-CODE ALPHABETIC THEN
    DISPLAY "英字として処理します。"
ELSE
    DISPLAY "英字以外が入力されています。"
END-IF

こちらは、FIELD-CODEという変数に英字だけが入っているかを確認する例です。

6. 数値比較とNUMERIC条件を組み合わせる方法

6. 数値比較とNUMERIC条件を組み合わせる方法
6. 数値比較とNUMERIC条件を組み合わせる方法

数字として処理する前に、NUMERICでチェックすると、安全に数値比較ができます。例を見てみましょう。


IF FIELD-NAME NUMERIC THEN
    IF FIELD-NAME >= 100 THEN
        DISPLAY "100以上です。"
    ELSE
        DISPLAY "100未満です。"
    END-IF
ELSE
    DISPLAY "有効な数字を入力してください。"
END-IF

まず、文字列が数字かを確認してから、数値の大きさを比べているので、安全な処理になります。

7. ALPHABETIC・NUMERIC条件を使うときの注意点

7. ALPHABETIC・NUMERIC条件を使うときの注意点
7. ALPHABETIC・NUMERIC条件を使うときの注意点
  • 空白もFalseとなる:フィールドが空欄の場合はALPHABETICもNUMERICもFalseになります。
  • 混ざった文字列はFalseになる:「A123」など英数字混ざりはどちらもFalseです。
  • 条件は簡潔に書く:ネストが深くなると見づらくなるので、画面案内を工夫して入力を制限するのがベストです。

8. 総まとめチェック例

8. 総まとめチェック例
8. 総まとめチェック例

IF FIELD NUMERIC THEN
    IF FIELD <= 9999 THEN
        DISPLAY "4桁以内の数字ですね。"
    END-IF
ELSE
    IF FIELD ALPHABETIC THEN
        DISPLAY "英字が入力されています。"
    ELSE
        DISPLAY "英数字以外が入力されています。"
    END-IF
END-IF

この例は、数字の場合は4桁以内か、文字なら英字か、それ以外かで分けて表示する処理です。

実務では、このように条件分岐を使って安全なデータ処理を行います。

まとめ

まとめ
まとめ

COBOLで数値比較とALPHABETIC・NUMERIC条件を組み合わせて使う考え方は、最初こそむずかしく感じることがありますが、実務の入力チェックやデータ処理では欠かせない基本です。とくに数字の大小比較を行う前にNUMERIC条件で「ほんとうに数字だけが入っているか」を確かめる流れは、業務システムの安定性を大きく高めます。さらに、英字だけが入っているかを判断するALPHABETIC条件は、コードや区分値のチェックに役立ちます。こうした条件式をひとつずつ丁寧に組み合わせることで、入力ミスを早期に発見しやすくなり、後続処理の安全性も自然と高まります。 また、条件分岐を多用する場面では、IF文の構造を整理しながら読みやすいコードにすることがとても重要です。条件が複雑になるほど誤判定のリスクが増えるため、まず数値か文字かを見分け、それから桁数や大小比較へ進む流れを統一しておくと保守が楽になります。業務入力のバリデーションでは、数字だけが許される欄か、英字だけが入る項目か、数字と文字が混ざっていてはならない場面かなど、用途に応じてALPHABETICやNUMERICを適切に使い分けることが品質を支えるポイントです。 さらに、これらの基本は金融・流通・行政などの基幹システムでも長く使われてきた堅牢な考え方であり、COBOLの強みがとてもよく表れた部分でもあります。フィールドの種類を見極め、まちがったデータが入る前に正しく判定する仕組みは、どれだけ時代が変わっても業務処理の中心として重視され続けています。文字列が数字だけかどうか、英字だけかどうか、英数字以外を含むのか、こうした判定を段階的に行うことで、トラブルを防ぎながら信頼性の高い処理を実現できます。 入力された内容が正しい形式かどうかを細かく分類したい場合は、NUMERIC判定と大小比較を組み合わせて「数値として正しいかつ指定範囲内」を限定したり、ALPHABETICで「すべてが英字」の条件を確認したあとに、さらに桁数をチェックするなど応用範囲が広がります。こうして複数の条件を組み合わせていくと、処理の流れが整い、プログラム全体の見通しも自然と良くなるはずです。 さいごに、理解を深めるためのサンプルコードをあらためて整理して掲載します。実務でも活かせる形になるように、わかりやすい条件の流れを意識した構成にしています。

サンプルコードで振り返る条件判定


*> 入力チェックと数値比較をまとめた例
IF INPUT-VALUE NUMERIC THEN
    IF INPUT-VALUE >= 1 AND INPUT-VALUE <= 9999 THEN
        DISPLAY "有効な範囲の数字です。"
    ELSE
        DISPLAY "数字ですが範囲外です。"
    END-IF
ELSE
    IF INPUT-VALUE ALPHABETIC THEN
        DISPLAY "英字のみが入力されています。"
    ELSE
        DISPLAY "英数字以外の文字が含まれています。"
    END-IF
END-IF

このように、数字かどうかを最初にチェックし、その後の条件を段階的にわける構成はとても安定した書き方です。特に、業務データの検証では「入力が正しい形式であること」を保証することが重要なので、ALPHABETICとNUMERICの特性をしっかり理解しておくことが役立ちます。ひとつひとつの条件を丁寧に書き分けることで、予期しない文字やまちがった値が混ざることを防ぎ、後続処理の結果を正しく保つことができます。COBOLでは型が厳密である分、このようなチェックの仕組みが非常に重要です。 実務に近い場面では、入力項目の性質に応じて英字判定・数字判定・大小比較・桁数制限などを段階的に組み合わせていく設計が求められます。こうした積み重ねによって、安全で読みやすく保守しやすいコードが完成し、システムの信頼性もさらに高まっていきます。ぜひ、基本的なポイントを押さえたうえで、実際の処理に応じた判定ロジックを柔軟に組み立ててみてください。

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

生徒

「きょうの内容で、数字か文字かを見分けながら処理を作る大切さがよくわかりました。特にNUMERICチェックのあとに比較をする流れはとても役に立ちそうです。」

先生

「その感覚はとても大事ですよ。入力値の型をしっかり判定することで、後続処理の安全性が大きく変わります。ALPHABETICやNUMERICは基本ですが、業務の品質を支える重要な条件なんです。」

生徒

「たしかに、英字だけか数字だけか、あるいはまざっているかで処理を変えられるのは便利ですね。桁数チェックと一緒に組み合わせれば、もっとしっかりした入力判定ができる気がします。」

先生

「その通りです。場面に応じて条件を階段のように組み立てていくと、読みやすくて保守しやすいCOBOLコードになりますよ。実務でもよく使うので、これからもじっくり慣れていきましょう。」

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

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

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

COBOLで数値を比較するにはどうすればいいですか?

COBOLではIF文と比較演算子を使って数値比較を行います。例えば「18歳以上かどうか」を調べたいときには、IF AGE >= 18 のように書いて判定できます。
カテゴリの一覧へ
新着記事
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#の非同期処理とUIスレッドをマスター!WPF/WinFormsでアプリが止まる問題を解決
No.8
Java&Spring記事人気No8
C#
C#のCancellationTokenを使ったキャンセル処理を完全ガイド!非同期処理を安全に止める方法