
C言語基礎|関係演算子
― 数値の大小を条件として扱う ―
これまでの if 文では、「等しいかどうか」や「ゼロかどうか」といった
2 択の判断を中心に扱ってきました。
しかし、実際のプログラムでは、
- ある値より大きいか
- ある範囲に収まっているか
- 基準値を超えているか
といった 大小関係による判断 を行う場面が数多く登場します。
ここでは、そのために使われる 関係演算子 を学び、
if 文と組み合わせて 3 つ以上に分岐する処理 を理解していきましょう。

3 つに分岐する条件判定を考える
まずは、次の問題を考えてみます。
整数値を読み込み、その値が「ゼロ」「正の数」「負の数」のどれに当たるかを判定する。
これは、
- 値が 0 かどうか
- 0 より大きいかどうか
- それ以外かどうか
という 大小関係を使った条件分岐 で実現できます。
サンプルプログラム:数値の状態を判定する
プロジェクト名:chap3-5-1 ソースファイル名:chap3-5-1.c
Visual Studio でこのプログラムを実行するには、SDLチェック設定を変更しておく必要があります。
1.プロジェクト名を右クリックして、「プロパティ」をクリックします。
2.「C/C++」→「全般」→「SDLチェック」を「いいえ」に切り替えて「OK」をクリックします。
// 読み込んだ整数値の状態を判定する
#include <stdio.h>
int main(void)
{
int value;
printf("整数を入力してください:");
scanf("%d", &value);
if (value == 0)
puts("入力された値はゼロです。");
else if (value > 0)
puts("入力された値は正の数です。");
else
puts("入力された値は負の数です。");
return 0;
}実行例
整数を入力してください:0
入力された値はゼロです。
整数を入力してください:18
入力された値は正の数です。
整数を入力してください:-7
入力された値は負の数です。if ~ else if ~ else の流れ
このプログラムでは、次のような順序で条件が評価されます。
- value が 0 と等しいか
- そうでなければ、value が 0 より大きいか
- それ以外(負の数)
このように、上から順に条件を判定し、最初に成立した分岐だけが実行されます。
これによって、3 つ以上の選択肢を自然に表現できます。
> 演算子の役割
ここで初めて使われているのが、次の演算子です。
value > 0この > は、関係演算子 の一つで、
- 左側の値が右側の値より大きければ 1
- そうでなければ 0
という int 型の値 を生成します。
その結果が if 文の制御式として使われています。
関係演算子の一覧
大小関係を判定する演算子をまとめると、次の 4 つになります。
| 演算子 | 意味 |
|---|---|
| a < b | a が b より小さければ 1、そうでなければ 0 |
| a > b | a が b より大きければ 1、そうでなければ 0 |
| a <= b | a が b 以下であれば 1、そうでなければ 0 |
| a >= b | a が b 以上であれば 1、そうでなければ 0 |
いずれも、評価結果は int 型の 1 または 0 になります。
注意:演算子の書き方
<= や >= は 2 文字で 1 つの演算子 です。
次のような書き方はできません。
- =<
- =>
- < =
- =
必ず <=、>= の形で続けて書きましょう。
サンプルプログラム②:基準値との比較
関係演算子は、基準値と比較する場面でもよく使われます。
次は、テストの点数が合格点以上かどうかを判定する例です。
プロジェクト名:chap3-5-2 ソースファイル名:chap3-5-2.c
Visual Studio でこのプログラムを実行するには、SDLチェック設定を変更しておく必要があります。
1.プロジェクト名を右クリックして、「プロパティ」をクリックします。
2.「C/C++」→「全般」→「SDLチェック」を「いいえ」に切り替えて「OK」をクリックします。
// 点数が合格点以上かどうかを判定
#include <stdio.h>
int main(void)
{
int score;
printf("点数を入力してください:");
scanf("%d", &score);
if (score >= 60)
puts("合格です。");
else
puts("不合格です。");
return 0;
}実行例
点数を入力してください:72
合格です。
点数を入力してください:48
不合格です。等価演算子との違いを意識しよう
ここで、前回学習した 等価演算子 と比べてみましょう。
- 等価演算子
→ 値が同じかどうかを判定する。 - 関係演算子
→ 値の大小関係を判定する。
どちらも 条件を作るための演算子 であり、
if 文の制御式として使われる点は共通しています。
まとめ:関係演算子で分岐の幅が広がる
関係演算子を使えるようになると、
- ゼロ・正・負の判定
- 合格・不合格の判定
- 範囲チェック
など、現実的な条件分岐 を表現できるようになります。
if 文と組み合わせて、
「値を比べて判断する」という感覚を、しっかり身につけていきましょう。
