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.数値の比較を行う(比較演算子)で述べました。 […]