COBOLのif文の使い方を完全ガイド!初心者でもわかる乱数生成
生徒
「COBOLで条件によって分岐する方法ってありますか?」
先生
「COBOLでは、if文を使って、簡単に条件分岐することができます。」
生徒
「条件って、例えば『年齢が20歳以上なら大人』みたいなことですか?」
先生
「その通りです!そういった判断には“比較演算子”を使います。今回はその使い方をじっくり学んでいきましょう。」
1. COBOLのif文と比較演算子の基本
COBOL(コボル)では、IF文を使って条件に応じた処理の分岐ができます。そのときに使うのが「比較演算子(ひかくえんざんし)」です。
比較演算子というのは、値と値を比べて「等しいか」「大きいか」「小さいか」などを判断するための記号やキーワードのことです。普段の会話で言うと、「~より大きい」とか「~と同じ」といった表現にあたります。
2. COBOLの主な比較演算子一覧
COBOLで使われる比較演算子は、英語の単語を使うのが特徴です。下記の表にまとめました。
| 意味 | COBOLの書き方 | 例(AGEが20以上なら) |
|---|---|---|
| 等しい | = または EQUAL TO | IF AGE = 20 |
| 等しくない | NOT = または NOT EQUAL TO | IF AGE NOT = 20 |
| より大きい | > または GREATER THAN | IF AGE > 20 |
| より小さい | < または LESS THAN | IF AGE < 20 |
| 以上(以上を含む) | >= または GREATER THAN OR EQUAL TO | IF AGE >= 20 |
| 以下(以下を含む) | <= または LESS THAN OR EQUAL TO | IF AGE <= 20 |
3. COBOLでの比較演算子の使い方例
ここでは、実際のCOBOLプログラムの中で、比較演算子をどのように使うかを見ていきます。年齢を使ったシンプルな例で学んでいきましょう。
この例では、年齢が20歳以上なら「あなたは成人です。」と表示するプログラムです。
IF AGE >= 20 THEN
DISPLAY "あなたは成人です。"
END-IF
このコードの意味を簡単に言うと、「もしAGE(年齢)が20以上だったら、『あなたは成人です。』と画面に表示しなさい」ということです。
4. COBOのif文では「=」と「EQUAL TO」は同じ?
はい、COBOLでは=とEQUAL TOは、どちらも「等しい」を意味する比較演算子です。ですので、次の2つは同じ意味になります。
IF AGE = 20 THEN
DISPLAY "ちょうど20歳ですね。"
END-IF
IF AGE EQUAL TO 20 THEN
DISPLAY "ちょうど20歳ですね。"
END-IF
どちらを使っても問題ありませんが、=のほうがシンプルで初心者には読みやすいかもしれません。
5. 「等しくない」を書くには?
「等しくない」、つまり「違う」という意味を表すには、NOT =やNOT EQUAL TOを使います。
たとえば、年齢が20歳でない場合にメッセージを表示するには、こう書きます。
IF AGE NOT = 20 THEN
DISPLAY "20歳ではありません。"
END-IF
6. GREATER THANとLESS THANの使い方
COBOLでは「大きい」「小さい」といった比較も英語で表現できます。
IF AGE GREATER THAN 65 THEN
DISPLAY "シニア割引の対象です。"
END-IF
これは、「AGE(年齢)が65より大きければ、“シニア割引の対象です”と表示しなさい」という意味です。
7. 比較演算子を使うときの注意点
比較演算子を使うときに大切なポイントは以下の3つです。
- 比較する値のデータ型が合っていること(数字と文字は比べられません)
- スペルミスに注意すること(EQUALがEQULになっていないか確認)
- IF文の最後はEND-IFでしめる(忘れるとエラーになります)
8. 実行結果を確認しよう
それでは、AGEが18のときの実行結果を見てみましょう。
(何も表示されません)
AGEが18なので、IF AGE >= 20の条件には当てはまりません。したがって、中のDISPLAY文は実行されず、何も表示されません。
今度はAGEが21の場合を見てみましょう。
あなたは成人です。