関係演算、論理演算について

最終更新日:2004-06-24.

今回は、関係演算、論理演算などについてちょっと。

・関係演算

変数の大小関係を比較することができます。
関係演算子には以下のようなものがあります。
「<」、「>」、「==」、「<=」、「>=」、「!=」。

例えば。

int i;

そして、以下のような式には、それぞれに次のような意味があります。

i>0

iは0よりも大きい。

i<0

iは0よりも小さい。

i==0

iは0と等しい。

i>=0

iは0と等しいかそれよりも大きい。

i<=0

iは0と等しいかそれよりも小さい。

i!=0

iは0と等しくない。

これらは、条件文、if()文、while()文などの条件部分に
使用することができます。

例えば。

if( i>2 ){
実行したい文;
}

これは、iが2よりも大きいとき、{ }の中の文を実行します。

while( i==2 ){
実行したい文;
}

これは、iが2と等しいとき、{ }の中の文を実行します。

このような関係演算子を用いた式に、値があります。

例えば。

int i;
i=5;

「i>0」の条件に合致します。
でも、「i<0」の条件にかないません。

条件に一致したときを「真」、一致しないときを「偽」といいます。
真のときの値は1、偽のときの値は0となります。

・論理演算

論理演算を使うと、複数の条件が満たされているかどうかを
判定することができます。

論理演算子には以下のようなものがあります。
「&&」、「||」。

例えば。

int i;

(1<=i) && (i<=9)

iの値が1以上9以下のとき真となり、1という値を持ちます。
それ以外のとき偽となり、0という値を持ちます。

(1<i) || (i<9)

iの値が1よりも大きいか、または9よりも小さいとき真となり、1という値を
持ちます。それ以外のとき偽となり、0という値を持ちます。

「&&」は論理積で「かつ」というように読み、
両方の条件が満たされたとき「真」となり、
それ以外は偽となります。

「||」は論理和で「または」と読み、どちらか一方の条件が満たされていれば
「真」となり、それ以外は偽となります。

では、ソースにしてみましょう。
以下のソースでは、変数iが1以上9以下であるか、
次に、2の倍数または3の倍数であるかどうかを調べています。
+------------------------------------------------------------+
/* filename=no019-1.c */
/* include */
#include <stdio.h>
int main( )
{
int i;
/* 論理積 */
i=6;
printf("変数iに%dを代入したときの条件判断:", i);
if( 1<=i && i<=9 )
printf("条件を満たしています。\n");
else
printf("条件を満たしていません。\n");
i=10;
printf("変数iに%dを代入したときの条件判断:", i);
if( 1<=i && i<=9 )
printf("条件を満たしています。\n");
else
printf("条件を満たしていません。\n");
/* 論理和 */
i=4;
printf("変数iに%dを代入したときの条件判断:", i);
if( (i%2==0) || (i%3==0) )
printf("条件を満たしています。\n");
else
printf("条件を満たしていません。\n");
i=5;
printf("変数iに%dを代入したときの条件判断:", i);
if( (i%2==0) || (i%3==0) )
printf("条件を満たしています。\n");
else
printf("条件を満たしていません。\n");
i=6;
printf("変数iに%dを代入したときの条件判断:", i);
if( (i%2==0) || (i%3==0) )
printf("条件を満たしています。\n");
else
printf("条件を満たしていません。\n");
return 0;/* 終了 */
}
+------------------------------------------------------------+

上記のソースをコンパイルして実行すると以下のように表示されました。
変数iに6を代入したときの条件判断:条件を満たしています。
変数iに10を代入したときの条件判断:条件を満たしていません。
変数iに4を代入したときの条件判断:条件を満たしています。
変数iに5を代入したときの条件判断:条件を満たしていません。
変数iに6を代入したときの条件判断:条件を満たしています。

戻る