カテゴリ: COBOL 更新日: 2025/12/31

COBOLのNOT演算子の使い方を初心者向けに完全ガイド!条件の否定をやさしく解説

NOT演算子(条件の否定)の使い方と注意点
NOT演算子(条件の否定)の使い方と注意点

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

生徒

「COBOLで『○○ではない』という条件は、どうやって書くんですか?」

先生

「COBOLでは、NOTという言葉を使って、『~でない』という条件を簡単に書くことができます。」

生徒

「たとえば『男性ではない』とか『学生でない』というのも書けますか?」

先生

「もちろん可能です。それでは、具体的な使い方と注意点を一緒に学んでいきましょう!」

1. NOT演算子とは?

1. NOT演算子とは?
1. NOT演算子とは?

COBOLのNOT演算子は、「~ではない」という条件を表すときに使います。たとえば、「性別が男性でない」「年齢が20歳でない」など、否定をするときに便利な演算子です。

「演算子(えんざんし)」とは、条件や数値などを計算・比較するための記号やキーワードのことです。ここではNOTがその演算子にあたります。

普段の生活での例に置きかえると、
「今日じゃない日が良い」とか「甘くない飲み物がほしい」といった言い方が、それに近い感覚です。

2. NOT演算子の基本的な書き方

2. NOT演算子の基本的な書き方
2. NOT演算子の基本的な書き方

それでは、COBOLでのNOTの書き方を見ていきましょう。基本の構文(書き方)は以下のようになります。


IF NOT 条件 THEN
    処理
END-IF

このように書くことで、「条件が当てはまらないとき」にだけ、処理が実行されます。

3. 具体的な例でNOTを理解しよう

3. 具体的な例でNOTを理解しよう
3. 具体的な例でNOTを理解しよう

それでは、性別が「女性でない(=男性など)」場合にメッセージを表示する例を見てみましょう。


IF NOT GENDER = "F" THEN
    DISPLAY "あなたは女性ではありません。"
END-IF

このコードでは、GENDERという変数が「F」(F=女性)ではないときに、メッセージを表示します。


    あなたは女性ではありません。

たとえば、GENDERが"M"(男性)だった場合、この条件は当てはまり、メッセージが出力されます。

4. NOTを数値に使う例

4. NOTを数値に使う例
4. NOTを数値に使う例

次は、「年齢が20歳ではない人」に対してメッセージを出すパターンです。


IF NOT AGE = 20 THEN
    DISPLAY "あなたは20歳ではありません。"
END-IF

    あなたは20歳ではありません。

このように、数値にもNOTは使うことができます。比較演算子(=、>、<など)と一緒に使うのが一般的です。

5. NOTを使うときの注意点

5. NOTを使うときの注意点
5. NOTを使うときの注意点

NOTは書く場所がとても重要です。次のように間違った場所にNOTを置くと、意図しない動作になります。


IF NOT AGE > 20 THEN
    DISPLAY "20歳以下です。"
END-IF

このように書くと、「年齢が20歳以下ではない」という意味になりそうですが、実際には「AGE > 20」が成立しないときに表示されます。つまり、AGE <= 20のような扱いになるのです。

NOTは条件全体を反転するので、もし複雑な条件を書くときは、IFの構造を分けて書く方が安全です。

6. 複合条件にNOTを使うときのコツ

6. 複合条件にNOTを使うときのコツ
6. 複合条件にNOTを使うときのコツ

ANDORなどとNOTを一緒に使うと、優先順位に注意が必要です。COBOLでは次のような順番で条件が評価されます:

  • NOT が一番最初に処理される
  • その次に AND
  • 最後に OR

例を見てみましょう:


IF NOT AGE = 18 OR STATUS = "VIP" THEN
    DISPLAY "特別な条件に当てはまります。"
END-IF

このコードは、「年齢が18ではない」または「ステータスがVIP」だったときに実行されます。

もし「(年齢が18でない人の中で、VIPの人)」にしたいなら、次のようにIF文を分けて書く方法が安全です。


IF NOT AGE = 18 THEN
    IF STATUS = "VIP" THEN
        DISPLAY "あなたは18歳ではないVIPです。"
    END-IF
END-IF

このように分けて書くことで、意図通りの動作になります。

7. よくある間違いとその対処法

7. よくある間違いとその対処法
7. よくある間違いとその対処法

NOTの使い方で間違えやすいポイントを整理します。

  • NOTを正しく条件の前に置く:例えばNOT GENDER = "F"のように。
  • 複数の条件を扱うときはIF文を分ける:一文にすると誤動作のもと。
  • NOTは条件全体にかかる:数式のようにNOTをつけると真逆の意味になることがある。

また、英語の意味と直感が逆になることもあるので、日本語で「~でない」と確認しながら読むとミスを防げます。

まとめ

まとめ
まとめ

COBOLのNOT演算子について学んできた内容をふりかえりながら、条件の否定を安全に扱うための考え方や実務で役立つ注意点を整理していきます。COBOLで条件式を書くとき、否定の処理をどう記述するかは業務ロジックの正確さに直結します。とくに条件を読み間違えると、想定とは逆の結果を導いてしまうため、初心者が最初につまずきやすい部分でもあります。

NOT演算子は「~ではない」という否定条件を表すための重要なキーワードであり、単独の条件だけでなく、数値比較や文字列比較、さらに複合条件とも組み合わせて使われます。年齢や性別の判定、ステータスの確認など、日常的な処理でも頻繁に登場します。また、NOTは条件全体を反転させる性質を持つため、位置を誤るとプログラムの挙動が大きく変わる点も理解しておきたいポイントです。否定条件を使う場面は業務アプリケーションでも多く、「特定の顧客ではない」「指定のコードではない」「該当レコードが存在しない」など、自然な日本語表現に沿って判定を書くためにも覚えておきたい構文です。

さらに、ANDやORと組み合わせたときの優先順位も実務では欠かせない知識になります。COBOLでは優先順位が明確であり、NOTが最初、続いてAND、最後にORという順で処理されます。この順序を理解していないと、意図しない条件でプログラムが動作してしまうため、複雑な条件式を書くときは注意が必要です。複合条件でトラブルが起きた経験を持つエンジニアは多く、初心者だけでなく中級以上でも油断できない部分といえます。

また、NOTを過度に使うことでコードが読みにくくなるケースもあるため、必要に応じてIF文を分けることで、より自然で理解しやすいコードにできます。業務システムは数年、場合によっては十数年にわたって保守されることが多く、読みやすさは後の開発者にとって大きな助けとなります。とくにCOBOLは企業システムで使われることが多く、複雑な条件処理を扱う際にミスを減らす工夫も求められます。このように、NOTの使い方を正しく理解すると、より安全で分かりやすいロジックを組み立てることができるようになります。

ここでは、実際に使えるサンプルコードもあわせて紹介します。条件の組み立て方や否定をどう扱うかをコードで確認することで、より深く理解できるはずです。

サンプルコード:NOTを使った基本の条件判定


IF NOT USER-TYPE = "ADMIN" THEN
    DISPLAY "管理者ではありません。"
END-IF

サンプルコード:複合条件とNOTの安全な組み合わせ


IF NOT AGE = 30 THEN
    IF MEMBERSHIP = "STANDARD" THEN
        DISPLAY "三十歳ではない標準会員です。"
    END-IF
END-IF

これらの例からもわかるように、NOTは単に反転するだけでなく、条件の意味そのものを変える力を持っています。文章として読んだときに自然に理解できる形を心がけると、条件式での誤解やバグを防ぎやすくなります。実際の業務でも、「条件を分割する」「自然な日本語に置き換える」「優先順位を意識する」という三つのポイントを意識するだけで、コードの品質が大きく向上します。

とくに初心者にとっては、否定の条件は読みづらく感じることが多いため、「なにを否定しているのか」「どの部分にNOTがかかっているのか」を丁寧に読み解くことが大切です。慣れてくると、複数パターンの条件を効率よく書けるようになり、複雑なロジックにも自然と対応できるようになります。

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

生徒

「NOTって、ただ否定するだけじゃなくて、位置とか優先順位でも意味が変わるんですね。」

先生

「そのとおりです。とくに複雑な条件を書くときは、ひとつのIF文に全部まとめずに、分けて書くほうが読みやすく安全ですよ。」

生徒

「たしかに分けて書いたほうが意味がはっきりしますね。否定を含む文章は日本語でも読みづらいことがありますし。」

先生

「その感覚はとても大事ですよ。コードも同じで、読みやすさを意識するとバグが減ります。今回覚えたNOTの動きと優先順位をしっかり活かしてくださいね。」

生徒

「はい!否定条件が怖くなくなりました。次はANDやORの複雑な組み合わせにも挑戦してみたいです!」

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

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

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

COBOLで「〜ではない」という否定条件はどうやって書くのですか?

COBOLでは「NOT」演算子を使うことで、「〜ではない」という否定条件を表現できます。たとえば「性別が男性ではない」や「年齢が20歳でない」といった条件もNOTで簡単に書けます。
カテゴリの一覧へ
新着記事
New1
C#
C#のLINQでAny・Allなど条件確認メソッドの使い方を完全ガイド!初心者でもわかるデータ検証
New2
C#
C#のデフォルト引数と名前付き引数の使い方を解説!初心者でも安心のやさしい入門
New3
C#
C#のオブジェクト初期化子を完全ガイド!初心者でもわかる便利な使い方
New4
COBOL
COBOLの帳票出力と編集を完全マスター!条件付き表示で分かりやすい書類を作る方法
人気記事
No.1
Java&Spring記事人気No1
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.2
Java&Spring記事人気No2
C#
C#でJSONファイルを読み書きする方法(JsonSerializer・Newtonsoft.Json)
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#の非同期処理とUIスレッドをマスター!WPF/WinFormsでアプリが止まる問題を解決
No.7
Java&Spring記事人気No7
C#
C#のCancellationTokenを使ったキャンセル処理を完全ガイド!非同期処理を安全に止める方法
No.8
Java&Spring記事人気No8
C#
C#のLINQ(リンク)とは?基本概念とデータ操作を初心者向けに徹底解説!