C言語で数値の比較を行うには、以下の6種類の演算子を使います。
記述 | 種類 | 意味 | 使い方 | 解説 |
---|---|---|---|---|
== | 等価演算子 | 一致 | a == 10 | aが10である |
!= | 等価演算子 | 不一致 | a != 10 | aが10ではない |
>= | 関係演算子 | 以上 | a >= 10 | aが10以上である (aが10と同じか10より大きい) |
> | 関係演算子 | 越える | a > 10 | aが10を越える (aが10より大きい) |
<= | 関係演算子 | 以下 | a <= 10 | aが10以下である (aが10と同じか10より小さい) |
< | 関係演算子 | 未満 | a < 10 | aが10未満である (aが10より小さい) |
試しに上記6つの比較演算子(等価演算子と関係演算子)を使ってプログラムを作ってみます。
/* hikaku_all.c 6つの比較演算子を全て使ってみる */ #include <stdio.h> int main(void) { int n; printf("0から9のうちのどれかの数字を入力してね: "); scanf("%d", &n); if(n < 0){ printf("小さすぎるよ!\n"); } else if(n > 9){ printf("大きすぎるよ!\n"); } else if(n != 4){ printf("いい数字だね!\n"); } if(n == 0){ printf("一番小さい数にしたね。\n"); } if(n >= 0){ if(n <= 9){ printf("OK %d だね!\n", n); } } return 0; }
解説
キーボードから数値を入力させます。
入力した数値によってメッセージを変えています。
最初のif文のブロックから見ていきます。
if(n < 0){ printf("小さすぎるよ!\n"); } else if(n > 9){ printf("大きすぎるよ!\n"); } else if(n != 4){ printf("いい数字だね!\n"); }
n < 0 で、最初に0未満かどうかを判定しています。
そうでない場合は、n > 9 で9より大きいかどうかを判定します。
更にそうでない場合、n != 4 で4以外の数値であるかを判定します。
入力した値によるメッセージの例を表にするとこんな感じです。
入力した値 | 表示結果 |
---|---|
-1 | 小さすぎるよ! |
10 | 大きすぎるよ! |
4を除く1~9 | いい数字だね! |
次のif文ブロックです。
if(n == 0){ printf("一番小さい数にしたね。\n"); }
n == 0 で0と一致する場合を判定しています。0なら「一番小さい数にしたね。」と表示します。
0以外の場合は、何もメッセージを表示しません。
最後のif文です。
if文の中にif文が存在します。
この場合は、外側のif文から判定します。
n >= 0 なので、0以上の場合、内側のif文を実行します。
内側のif文の条件は、n <= 9 ですので、9以下の場合という意味になります。
したがって、2つを合わせてnが0以上で9以下の場合という意味になります。
if(n >= 0){ if(n <= 9){ printf("OK %d だね!\n", n); } }
このようにAかつBであるというものを表す場合、「&&」記号を使って、以下のようにも記述可能です。
if( (n >= 0) && (n <= 9) ){ printf("OK %d だね!\n", n); }
コメント
[…] 実は否定の記述は等価演算子の「!=」で使われています。 「!」の部分です。 これはC言語では否定を表します。 どういう事かと言うと、反対の意味になるということです。 […]
[…] if文で数値の比較を行う方法は、10.数値の比較を行う(比較演算子)で述べました。 […]